从零学做 MDX,新手实操心得
由于要查The Oxford dictionary of English grammar就有了试着做成mdx的想法。在论坛搜索几个经验贴,从词典制作工具备份 下载了工具。拜读了[教程]从epub/mobi制作MDX方法(零基础可学会) 还有新手 入门 科普 。谢谢各位的分享。
做了一个毛坯版,仅仅是能够打开查阅,但是对我来说也够用了。里边肯定还有不少错误,使用的过程中再慢慢校对。
接触 MDX 词典制作这几天,从一开始一窍不通,到慢慢摸索也积攒了一些经验,特此整理出来,送给同样刚入门想自制词典的朋友。
一、了解制作工具。
工欲善其事,就得先磨刀。
开始使用某个工具,碰到的问题是,不知到有什么功能,用哪个功能可以实现自己的想法。想了解操作界面、菜单、工具栏等等,还是多用搜索引擎。
1. MdxBuilder
阅读这个文档manual_Chn.txt (3.4 KB)的3) MDict html format部分,了解一下目标文件的格式要求。一共也没几条,要认真阅读。
2.Emeditor
可以查阅官方文档,这是最新的
emeditor-May 06, 2026.pdf (5.0 MB) ,正文内容1833页。
AI推荐用的Onigmo正则表达式引擎,这是一些介绍
Onigmo (Oniguruma-mod) Regular Expressions Version 6.1.0-20161225.txt (17.8 KB) 。前几天用onigmo导致软件崩溃,是这个引擎不稳定么?与Boost.Regex孰优孰劣咱也说不清楚。
3.正则表达式
阅读这个文档正则表达式基础.pdf (1.3 MB),对于理解正则的符号组成、作用方式非常有帮助。内容出自《神奇的匹配:正则表达式求精之旅》 。编辑文本数据时会频繁用到查找-替换,了解一下正则,提高工作效率。
二、词典数据源。
输入的质量决定了输出的质量。
尝试从epub开始。
用epub制作mdx流程就几个步骤,改后缀、解压缩、编辑数据、生成mdx。
大量的时间都花在了数据整理上。
如果源文件的数据格式规范,很快就可以完成。要是数据比较混乱,最好还是换个源文件。否则刚开始就劝退,挫败感杠杠滴。
epub解压后会有很多html文件,建议先不要合并 ,合并以后数据量有点大,容易懵。先选一个篇幅小的、数据量少的。了解数据构成,如词头放在哪里、释义放在哪里,分别用什么标签包裹。这是定位获取内容的标记,也是查找、替换内容用的“锚点”。
如果是没有任何html标签的文本,里边有n个叫做“book”的,你批量操作的时候怎么区分哪个是heaword呢?以目前我的知识储备,没有任何标记的文本,那就只有对照原件手动操作了。
符合要求的最简单的数据是什么样的?4楼的test.txt (594 字节)就是一个例子。每个词条处理成这样,就能制作mdx了。
三、其他
这个事本质上是把一种文本格式转换成另外一种文本格式。如果你希望直接获得答案而不想在这上面花费什么时间,那就没必要开始,到这里 或者用搜索引擎找一下可能就实现了。如果你希望控制或驾驭“文本”,掌控文本的细节,愿意花时间和精力,你已经开始行动了。
正如《驾驭文本:文本的发现、组织和处理》Taming Text How to Find, Organize, and Manipulate it 这本书里讲的:
对于大部分驾驭文本的活动来说,搜索都是起点。Search provides the starting point for most of your text taming activities,
在对html进行改造,编辑txt文本这个过程,是需要考虑一下如何搜索、匹配、识别、标注的。
有编程经验加持,应该会方便很多。这方面我不了解。
但愿这些文字对你有所启发。
另外,论坛对编辑帖子次数有限制。
First issued as an Oxford University Press paperback 1994
Reissued, with corrections, in new covers 1998
这个test
test.txt (594 字节)
只有一个词条,可以用MdxBuilder制作成mdx,在goldendict中可以正常显示。
现代化的方案的话,可以用python和mdtt库生成mdx和mdd文件,使用bs4来解析生成html,如果处理源数据比如xml或者json格式能解析就不用正则去写,
至于MdxBuilder的话,就可以忽略不计了,就按照html格式写就行
编程的方案超出了我的知识边界,刚好有个疑问请教:现代化方案对数据源的要求是什么?是否也需要考虑重新整理数据?
比如说,epub的html把大多数词头放在class=“level” id="word123"标签,也有一些被放在正文里边,没有类似的标记,对于这种情况,通常怎么处理的?
可以阅读beautifulsoup文档,也可以问豆包啊千问啊。。。比写正则去解析xml快的多
也可以选择用ai编程工具比如trae等
现在0基础手搓用ai不难的
从零学做 MDX,新手实操心得二
道路千万条,省劲儿第一条。做题讲究简便方法,做事情也要考虑,在满足目的要求的情况下,能不能减少投入。为了避开复杂繁重的数据清洗,把目标瞄向了图片词典。
一键制作图片词典 MdxSourceBuilder 提供了一个好方法。源文件是扫描版pdf,容易获得。只要建立headword和页码的对应关系txt,词典的主体部分就完成了。
对于有索引的词典,用这个方法非常方便,能够快速得到与纸质书质量一样的成品。比如这个词典
索引
有12页,每页有6个切片,所有的切片交给AI会得到完整无误的结果,“headword page”格式的索引就建立了,配合少量的人工调整就可以进入下一环节。
现在直接把mdx格式说明和epub给ai,ai直接就能生成,不需要这么麻烦。
我用gemini比较多,也用gpt和claude,不过这种简单工作随便一个ai都可以做。
做图片词典也可以用paddleocr先识别一遍,然后让ai来写程序提取词头和页码。
我刚刚安装好python,vscode,正在研究怎么弄。跟ai交流忒费劲。安装的时候,每进行一步都截图丢过去,这样反倒是更方便。
你可以用trae或者一些vibe coding工具就不用不停在浏览器和vscode切换
已经下载了trae cn,在摸索中。安装python时设置了虚拟环境,在设置trae的时候花费了时间。现在用下来,感觉就是在不断试错。给的指令和反馈更准确,效率会高一些。如果不能很好的定义问题,就不知道什么时候能试出个结果了。
从零学做 MDX,新手实操心得三
几天的时间体验了不同阶段的制作技术,这次进入到快速生产的阶段。
个人体会,对于从未编码的人来说门槛在于:
调试工作环境。我用的Trae和python,是在AI的指导下完成安装调试的。
如何给Trae布置任务。我的做法是让聊天AI把每步出现的问题整理成信息+任务要求的内容给Trae,用过几次就了解怎么给Trae布置任务更高效。
第一个任务:
最终把Trae整崩溃,出现了满屏的“让我看看是什么样子的…”,正是由于这句话让我觉得要换个思路,随即把任务删除,工作环境中的相关文件删除。
第二个任务:
做了一些改进
a. 用Trae习惯的指令布置任务。对于“比较文件1和文件2的区别,告诉我结果”这类的工作,那就是一句话的事。对于稍微复杂一些的任务,如果不清楚如何下指令更符合Trae的习惯,这时候可以对任务进行拆分,化整为零分步实施。让Trae多做些一句话的事。
b. 布置任务时,尽可能多的给Trae提供信息。我提供了词典正文的一张图片、一个词条示例、python的版本以及pip list。
你切换到trae solo模式更好一点。。至于pip list本身ai就可以调用获取。。
dfL
2026 年6 月 9 日 10:59
18
用codex或antigravity会简单很多吧,让他们写Python脚本处理,唯一缺点就是要money