tsiank 发表于 2026-7-15 15:53:42

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:18:35

本帖最后由 shawky.nasr 于 2026-7-15 16:24 编辑

厉害{:6_137:} tsiank大

chigre3 发表于 2026-7-15 16:46:43

不明觉厉~   关注ing

shawky.nasr 发表于 2026-7-15 19:48:46

本帖最后由 shawky.nasr 于 2026-7-15 19:49 编辑

MacOS and Linux version

页: [1]
查看完整版本: mdx_util - MDX/MDD Database Utility Tool