用途:把 Scrivener 的 .scriv 项目编译成一份完整稿件,将 Draft 中的文档按活页夹顺序汇编为单个 Markdown 或纯文本文件。编译过程对项目只读,只读取活页夹并写出新文件,不会修改 .scriv。
主要能力:按活页夹顺序汇编 Draft;把每个条目的标题按其深度转为标题(顶层为 #,子级为 ##,依此类推);遵循 IncludeInCompile,被标记排除的条目会跳过;默认输出 JSON(含汇编文档与包含/跳过清单),加 --format text 只输出汇编文档;无正文的条目(文件夹、空文档、图片)只贡献标题,属正常现象。
使用方式: 编译整个 Draft 为 Markdown: python3 ${CLAUDE_PLUGIN_ROOT}/tools/scrivener/cli.py compile --to md --project "<path.scriv>" 编译为纯文本: python3 ${CLAUDE_PLUGIN_ROOT}/tools/scrivener/cli.py compile --to txt --project "<path.scriv>" 按 UUID 只编译某个容器: python3 ${CLAUDE_PLUGIN_ROOT}/tools/scrivener/cli.py compile --to md --group <uuid> --project "<path.scriv>" 标题不唯一,若用户按名称指定分组,先用 find(见 scrivener-inspect)解析出 UUID 再传给 --group。
限制:v0.1.0 的编译是有界近似。它不读取 compile.xml,不应用 section-type 到 layout 的映射,不添加标题前后缀或编号(如 Chapter <$n>),不插入分隔符,也不执行编译期替换;这些布局定义存放在项目外的应用级 Format/.scrformat 中。若用户期望某个具体 Scrivener 编译 Format 的精确输出,应说明本工具是近似而非复现。HTML、docx、odt、epub、pdf、Fountain 等格式为计划中且受引擎限制,当前 CLI 尚不支持;被问及时应说明尚未提供,并建议先编译为 Markdown 再自行用 pandoc/LaTeX 转换。section-type 到 layout 映射、Format 选择、分隔符、编号、前后置内容、编译期替换、占位符替换、目录生成、按标签/状态/集合过滤均为计划中。安全方面:编译只读,不修改 .scriv,无需备份;仍建议在编译前关闭 Scrivener 中的项目并等待云同步完成,以读取一致的磁盘状态。docs.checksum 不匹配仅为提示,不会阻止编译。