CLI
推荐安装:
npm install -g mdorigin
项目内安装也可以:
npm install --save-dev mdorigin
主要命令:
mdorigin dev --root <content-dir>mdorigin dev --root <content-dir> --search <search-dir>mdorigin build index --root <content-dir> --config <config-file>mdorigin build search --root <content-dir> --config <config-file>mdorigin build search --root <content-dir> --embedding-backend hashingmdorigin build search --root <content-dir> --incrementalmdorigin build cloudflare --root <content-dir> --config <config-file> --search <search-dir> --binary-mode externalmdorigin init cloudflare --dir . --r2-bucket <bucket-name>mdorigin sync cloudflare-r2 --dir <cloudflare-out-dir> --bucket <bucket-name>mdorigin search --index <search-dir> --meta type=post <query>
项目内安装时,通过 npx --no-install mdorigin ... 运行相同命令。
有用的默认行为:
dev、build index、build search、build cloudflare都接受--configbuild search默认写入dist/search,除非提供--outbuild search默认使用model2vec嵌入后端build search --incremental在输出目录旁保留indexbind缓存,加速重复构建build cloudflare默认写入dist/cloudflare/worker.mjs,除非提供--outbuild cloudflare默认--binary-mode inline;使用--binary-mode external把二进制分阶段到 Worker 包之外- 当给
build cloudflare传入--search时,搜索文件在 Cloudflare 部署中始终分阶段到 Worker 包之外,仍使用--assets-max-bytes/--r2-binding init cloudflare默认指向dist/cloudflare/worker.mjsinit cloudflare省略--name时从siteTitle推导 Worker 名称sync cloudflare-r2上传所有 R2 分阶段文件(包括外置的搜索文件),未变更的上传会被跳过,除非设置--force
搜索命令需要可选的 indexbind 包:
npm install indexbind
indexbind 运行时与索引细节见:
强制使用较旧的轻量后端:
mdorigin build search --root docs/site --embedding-backend hashing
当给 dev 或 build cloudflare 传入 --search 时,站点暴露:
/api/search?q=.../api/openapi.json
搜索元数据过滤可通过:
- 重复的 CLI 标志,如
mdorigin search --index dist/search --meta type=post --meta section=guides "cloudflare" - 查询参数,如
/api/search?q=cloudflare&meta.type=post&meta.section=guides
内容遍历忽略点文件与点目录。.gitignore 不影响发布行为。