mdx_util - MDX/MDD Database Utility Tool
本帖最后由 tsiank 于 2026-7-15 16:50 编辑借助于codex,基于Rayman Zhang的开源代码编译了一个windows端的命令行工具,用于制作mdx词典,另增加了将mdx/mdd导出为源文件的功能.
需要注意的是使用此工具制作的mdx为v3格式,第三方工具应该都不支持,所以只能使用官方的mdict最新客户端.
详情见源代码:https://github.com/tsiank/mdx_util
工具下载地址:https://github.com/tsiank/mdx_util/releases/tag/mdx_util_v1.1
我没有 Mac 设备,有想要在Mac上使用或者在Linux上使用的,可以自行编译.
使用方法及命令:
命令
test - 测试数据库结构
读取词典文件并验证词条内容是否可正常访问。
# 测试单个 MDX 文件
mdx_util test /path/to/file.mdx
# 使用 mdx 模式测试目录中的文件,并限制测试数量
mdx_util test --mode mdx --count 100 /path/to/directory
# 测试 MDD 或 ZDB 风格文件
mdx_util test --mode zdb --count 50 /path/to/file.mdd
# 随机抽样测试,而不是顺序读取
mdx_util test --random /path/to/file.mdx
常用选项:
--mode:测试模式,支持 zdb 或 mdx,默认是 zdb
--count:限制测试词条数量,默认测试全部词条
--random:随机抽样测试
list - 查询词条
按关键词搜索词条,并显示匹配词条及其后续若干词条。
# 基本查询
mdx_util list /path/to/file.mdx "apple"
# 显示 HTML 转文本后的内容预览
mdx_util list --preview /path/to/file.mdx "search term"
# 前缀匹配
mdx_util list --start-with-match /path/to/file.mdx "prefix"
# 部分匹配
mdx_util list --partial-match /path/to/file.mdx "pattern"
# 使用 mdx 模式查询
mdx_util list --mode mdx --preview /path/to/file.mdx "apple"
常用选项:
--mode:查询模式,支持 zdb 或 mdx,默认是 zdb
--preview:显示内容预览;纯文本内容在 HTML 提取为空时会回退显示原文
--start-with-match:前缀匹配
--partial-match:部分匹配
create-index - 创建全文索引
为指定 MDX 文件创建 Tantivy 全文搜索索引。
mdx_util create-index /path/to/file.mdx
该命令会生成索引文件,用于后续快速全文搜索。
fts-search - 全文搜索
使用已经创建的全文索引进行搜索。
mdx_util fts-search /path/to/file.mdx "search term"
# 搜索短语
mdx_util fts-search /path/to/file.mdx "exact phrase"
默认返回相关性最高的搜索结果。
convert-db - 转换数据库
通过 JSON 配置文件把源数据转换为 .mdx 输出。
# 只生成示例配置文件
mdx_util convert-db config.json --generate-config-only
# 使用已有配置执行转换
mdx_util convert-db config.json
配置文件示例:
{
"input_path": "/path/to/source.txt",
"output_file": "/path/to/output.mdx",
"data_source_format": "MdictHtml",
"content_type": "Html",
"default_sorting_locale": "en_US",
"preferred_content_block_size": 65536,
"preferred_key_block_size": 16384,
"password": ""
}
注意:当前 writer 生成的是 ZDB v3 风格文件,虽然扩展名通常为 .mdx,但不是标准 MDict v2 writer。更多细节见 FIX_SUMMARY.md。
build-mdd - 打包 MDD 资源文件
将目录中的资源文件打包为 MDD。
mdx_util build-mdd /path/to/resources output.mdd "password"
适用于图片、音频、样式文件等词典资源。
export - 还原源文本或资源文件
将 MDX/ZDB 文本词典导出回 MDict 源文本格式,或将 MDD 二进制资源解包到目录。
# 导出 ZDB/MDX 文本为源文本格式
mdx_util export /path/to/file.mdx output.txt
# 使用 mdx reader 模式导出
mdx_util export --mode mdx /path/to/file.mdx output.txt
# 导出 MDX 文本,并同时导出同名 MDD 资源
mdx_util export --mode mdx --with-mdd /path/to/file.mdx output.txt
# 批量导出目录中的 MDX 文件
mdx_util export /path/to/dictionaries output_directory
# 使用显式选项指定批量导出目录
mdx_util export /path/to/dictionaries --output-dir output_directory
# 批量导出目录中的 MDX 文件,并同时导出同名 MDD 资源
mdx_util export /path/to/dictionaries output_directory --with-mdd
# 解包 MDD 资源到目录
mdx_util export /path/to/file.mdd output_resources
# 只导出前 N 个词条或资源,适合抽样测试
mdx_util export /path/to/file.mdd output_resources --count 100
文本导出格式为:词条名、原始内容、</> 结束标记。Compact HTML 词典会导出 compact 源文本,并额外生成 output.txt.stylesheet.txt 这类 stylesheet 文件。资源导出会把 MDD 里的资源 key 映射为输出目录下的相对路径;同名 MDD 资源会导出到 <词典名>_mdd 目录。
keygen - 生成授权信息
为加密或带密码词典生成相关授权信息。
mdx_util keygen "password" "[email protected]"
# 使用 UUID 标识
mdx_util keygen "password" "006F0050-0063-006B-0065-4444556494345454D00"
输出内容包括密码、数据库 cipher、标识信息和终端用户注册码。 本帖最后由 shawky.nasr 于 2026-7-15 16:24 编辑
厉害{:6_137:} tsiank大 不明觉厉~ 关注ing 本帖最后由 shawky.nasr 于 2026-7-15 19:49 编辑
MacOS and Linux version
页:
[1]