mdtt 命令行工具 — 用 Python 脚本批量打包 mdx 词典
mdtt 是什么
mdtt(MDict Toolkit 的缩写)是一个开源的 Python 库,提供了 mdx/mdd 词典的读取、打包、编辑三大能力。跟 MDXBuilder 的 GUI 不同,mdtt 纯粹是命令行工具——可以在脚本里调用、可以在服务器上无界面运行,适合批量制作和 CI 自动化。
GitHub 项目主页:github.com/zhansliu/writemdict(社区也有 mdtt 这个 PyPI 包,功能相同)。
安装
最直接的方式:
pip install mdtt
或者从源码安装(Git Clone 后 pip install .)。mdtt 依赖很少(只需要 Python ≥3.6 和标准库 + requests),在任何能跑 Python 的平台上(Windows / Linux / Mac)都能用——这一点比 MDXBuilder(只支持 Windows)灵活得多。
命令行接口
mdtt 提供了几个核心命令:
pack — 打包 mtxt 为 mdx
mdtt pack -a dictionary.mtxt
这是最常用的命令:把 dictionary.mtxt 编译成同名的 .mdx。如果 mtxt 里引用了资源文件(@ 前缀的图片/音频),mdtt 会自动把它们打包进同名的 .mdd。
常用选项:
| 选项 | 说明 |
|---|---|
-a mtxt_file | 指定输入的 mtxt 文件 |
-o output_file | 指定输出文件名(可选,默认同名) |
--title "词典标题" | 设置词典标题(会在 MDict 词库列表里显示) |
--description "描述" | 设置词典描述(可选) |
--author "作者" | 设置作者信息 |
--cover image.png | 设置词典封面图标(显示在 MDict 的词典详情页) |
--no-mdd | 不打包 mdd(只输出纯 mdx) |
完整示例:
mdtt pack -a mydict.mtxt -o output/my_dict.mdx --title "我的英语词典" --author "我" --description "自制的英语词汇手册"
edit — 编辑已有 mdx
mdtt edit dictionary.mdx -a edit.mtxt
用新的 mtxt 文件增量修改已有词典——这在后期迭代词典内容时比每次全部重编高效得多。
view — 查看 mdx 结构
mdtt view dictionary.mdx
打印词典的元信息(标题、作者、条目数、mdd 列表等),快速检查编译结果是否正确。
dump — 把 mdx 拆回 mtxt
mdtt dump dictionary.mdx -a output.mtxt
把一个已有的 mdx 词典反向导出为 mtxt 源文件。这个功能特别有用——你可以下载一本别人做的词典,dump 回来看看 mtxt 长什么样,作为学习范例。
Python API
mdtt 也可以直接当 Python 库用,适合在更大的自动化流程中嵌入:
from mdtt import pack_dict
pack_dict(
mtxt_file="mydict.mtxt",
mdx_file="output/mydict.mdx",
title="我的词典",
author="我",
generate_mdd=True
)
mdtt vs MDXBuilder 对比
| 对比维度 | mdtt | MDXBuilder |
|---|---|---|
| 平台 | 跨平台(Python) | 仅 Windows |
| 界面 | 命令行 | GUI + 命令行 |
| 输入格式 | mtxt | mtxt + HTML |
| 输出格式 | mdx 2.x | mdx 1.x / 2.x + mdd 分卷 |
| 批量处理 | 轻松(Python 脚本循环) | 困难(需手动操作) |
| HTML 排版 | 不支持(mtxt 只有基础标记) | 完整支持 |
| mdd 分卷 | 不支持 | 支持 |
| 学习成本 | 极低 | 中等(manual.txt 需要精读) |
| 适合场景 | 批量、自动化、纯文本词典 | 精品词典、精美排版 |
推荐路线
- 批量制作 / CI 场景:优先 mdtt。写一个 Python 脚本循环调用
mdtt pack,每天定时跑、自动发布到 GitHub Release 或 FreeMdict Forum; - 精品词典 / HTML 排版:MDXBuilder 4.0 是目前唯一完整支持 mdd 分卷和 CSS 样式的工具;
- 学习 mdx 格式:mdtt dump 是最快的方法——随便 dump 一本精品词典,看看里面的 mtxt 源文件长什么样、资源怎么引用。