跳转到主内容
全部文档

编排(recipe)指南

真实的活儿往往是多步的:外文 PDF 想读中文,得先提取、再翻译;一摞 PDF 想做电子书,得提取、整理、导出。每步都有现成命令,但要记顺序、记中间文件名、一条条敲,反复做又烦又容易错。

「编排(recipe)」把这套固定流程写成一份清单,一条命令从头跑完:

bash
# 过去:两步,还得记住上一步产物叫什么42md 论文.pdf42md tools translate 论文.md --target 中文
# 现在:一条命令,提取 + 翻译一气呵成42md recipe run pdf2zh 论文.pdf

四个命令

bash
42md recipe list                 # 列出全部编排(内置 + 你自己存的)42md recipe verbs                # 列出能编排的全部动作 + 计费标记(真相源)42md recipe info <名称>          # 看某条编排分几步、要不要花钱42md recipe run <名称> <输入>    # 运行

能编排哪些动作

编排的每一步调用一个「动作」。动作只有两类:acquire(把文件转成 Markdown,通常是第一步),以及 tools.<工具名>(调一个单步工具)。下面是全部动作,按用途分组:

获取(第一步常用)

动作做什么输入 → 输出计费
acquire把文件转成 MarkdownPDF / 网页 / 录音 / Office / 图片 → md多数免费*

AI 加工(按千字计费)

动作做什么输入 → 输出计费
tools.translate翻译成目标语言md → md计费
tools.summarize提炼要点摘要md → md计费
tools.improveAI 润色 / 改写md → md计费
tools.hotwords提取热词 / 术语md → 热词计费

版式与导出(纯本地免费)

动作做什么输入 → 输出计费
tools.lint中文版式优化md → md免费
tools.md2pdf导出 PDFmd → pdf免费
tools.md2epub导出 EPUB 电子书md → epub免费
tools.md2docx导出 Wordmd → docx免费
tools.md2html导出 HTMLmd → html免费
tools.md2wechat公众号排版md → html免费

整理与文件(纯本地免费)

动作做什么输入 → 输出计费
tools.merge合并成一份多个 md / pdf → 一份免费
tools.split拆成多份md / pdf → 多份免费
tools.download批量下载 PDF网址 → 多个 pdf免费
tools.screenshot网页整页截图网址 → png免费
tools.scan扫描发现文件目录 → 文件列表免费
tools.inspect源文件体检文件 / 目录 → 报告免费
tools.compress源文件瘦身文件 / 目录 → 压缩后文件免费

* acquire:OCR 质量模式(-q,扫描件)和音频转写按量计费,其余本地免费。

动作清单会随版本扩充。命令行 42md recipe verbs 永远列出当前版本的全部可用动作 + 计费标记,是最准的真相源。

输入与产物怎么流动

一条编排就是一串步骤,产物像接力一样往下传:

text
你的输入(PDF / 网页 / 录音…)      │  {{ input }}  [acquire] ── 产出 md ──┐                         │  {{ steps.extract.output }}              [tools.translate] ── 产出 md ──┐                                   [tools.md2epub] ── 产出 epub → 交给你
  • 第一步通常是 acquire,用 {{ input }} 接收你运行时给的文件 / 网址。
  • 后续每一步用 {{ steps.<上一步id>.output }} 接住前一步的产物——你不用关心中间文件叫什么、存哪,编排替你接好。
  • 默认只把末步产物交给你;想把每一步的中间产物都留下,加一句 deliver: all

写一份编排

一条编排是一份纯文本 YAML,三个核心部分:name(名字)、steps(有序步骤)、output(要哪一步的产物)。

yaml
name: pdf2zhbook                 # 名字,命令行按它运行description: 外文 PDF → 中文 → 导出 EPUB   # 一句话说明params:                          # 可选:声明变量,运行时 --set 传入  - name: lang    description: 目标语言    default: 中文steps:  - id: extract                  # 步骤 id,唯一    run: acquire                 # 动作    with: ["{{ input }}"]        # 透传给动作的参数  - id: translate    run: tools.translate    with: ["{{ steps.extract.output }}", "--target", "{{ params.lang }}"]    billed: true                 # 计费步骤,标一下(运行前会提醒)  - id: book    run: tools.md2epub    with: ["{{ steps.translate.output }}"]output: "{{ steps.book.output }}"   # 最终要 EPUB
/2