# 【v1.6\_20240123】AutoMdxBuilder 自动化制作 mdx 词典

**URL:** <https://forum.freemdict.com/t/topic/22044>\
**Category:** 技术交流与词典编修\
**Tags:** 图片词典, mdict, mdxbuilder, mdxsourcebuilder, 文本词典, pdf\
**Created:** [2023 年7 月 7 日 02:39 UTC](https://forum.freemdict.com/t/topic/22044 "2023-07-07T02:39:18Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

作者： ![匿名678](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/%E5%8C%BF/ecc23a/32.png) [@匿名678](https://forum.freemdict.com/u/%E5%8C%BF%E5%90%8D678)\
发布日期： [2023 年7 月 14 日 04:45 UTC](https://forum.freemdict.com/t/topic/22044/41 "2023-07-14T04:45:18Z")

</div>

> [@匿名1487](#):
>
> 刚刚又重装到我最开始安装python时用的C:\Program Files\目录，依然无解。看来与python无缘了…

这里我手动选择安装到了C:\Program Files\目录，发现没有安装到Python311目录内  
于是再次重装，选择All Users，安装到的是"C:\Program Files\Python311"，问题解决，一切的教训是安装目录就按Python默认的来…这是我第一次安装python用的目录，途中反复卸载重装都不是这个目录。  
皆大欢喜，可喜可贺。

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年7 月 14 日 04:47 UTC](https://forum.freemdict.com/t/topic/22044/42 "2023-07-14T04:47:29Z")

</div>

针对你的这个情况，想最后实现自动打包的功能，也有特别的办法，那就是改 `auto_mdx_builder.py` 脚本，全部替换里面的 `f"mdict` 为 `f"C:\\......\\Scripts\\mdict.exe`，估计就可以了

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年7 月 14 日 04:48 UTC](https://forum.freemdict.com/t/topic/22044/43 "2023-07-14T04:48:03Z")

</div>

好的，解决了就行

---

<div class="post-metadata">

作者： ![SilasYang](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/silasyang/32/46854_2.png) [@SilasYang](https://forum.freemdict.com/u/SilasYang)\
发布日期： [2023 年7 月 20 日 13:57 UTC](https://forum.freemdict.com/t/topic/22044/44 "2023-07-20T13:57:12Z")

</div>

斗胆提两个小建议，不知能否满足~

1. 打包mdx时，AutoMdxBuilder会以txt的文件名作为词库名，而不是xxx.title.html里的内容。mdict-utils里是有 `--title` 的选项的，希望整合进AutoMdxBuilder中。
2. 完成一项操作后，程序给出的选项是“按回车以结束”，感觉很没有必要。窃以为可以设置为回到主菜单以便继续连续操作，或者直接退出。

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年7 月 20 日 14:21 UTC](https://forum.freemdict.com/t/topic/22044/45 "2023-07-20T14:21:19Z")

</div>

收到，这两点确实应该改进

---

<div class="post-metadata">

作者： ![SilasYang](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/silasyang/32/46854_2.png) [@SilasYang](https://forum.freemdict.com/u/SilasYang)\
发布日期： [2023 年7 月 25 日 09:04 UTC](https://forum.freemdict.com/t/topic/22044/46 "2023-07-25T09:04:45Z")

</div>

AMB似乎不能处理带有空格的路径，希望您改进~

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年7 月 25 日 15:19 UTC](https://forum.freemdict.com/t/topic/22044/47 "2023-07-25T15:19:02Z")

</div>

> [@SilasYang](#):
>
> AMB似乎不能处理带有空格的路径

已修复

> [@SilasYang](#):
>
> 完成一项操作后，程序给出的选项是“按回车以结束”，感觉很没有必要

已改进

> [@SilasYang](#):
>
> 会以txt的文件名作为词库名，而不是xxx.title.html里的内容

这个考虑了下还是没改，因为词典标题一但用 title.html 设定后使用者（比如在GoldenDict中）无法更改，而不设定的话直接用 mdx 文件名作为词典标题是灵活可自定义的。另外，词典标题一般不需要上html高级样式吧。

* * *

更新直接推送到 GitHub 了，直接下载源码即可，就不发布了哈

---

<div class="post-metadata">

作者： ![SilasYang](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/silasyang/32/46854_2.png) [@SilasYang](https://forum.freemdict.com/u/SilasYang)\
发布日期： [2023 年7 月 25 日 15:42 UTC](https://forum.freemdict.com/t/topic/22044/48 "2023-07-25T15:42:43Z")

</div>

好滴~谢谢改进  
:t_j_loveyou:

---

<div class="post-metadata">

作者： ![SilasYang](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/silasyang/32/46854_2.png) [@SilasYang](https://forum.freemdict.com/u/SilasYang)\
发布日期： [2023 年8 月 25 日 05:25 UTC](https://forum.freemdict.com/t/topic/22044/49 "2023-08-25T05:25:27Z")

</div>

Man兄，提交反馈二则：

1. bug修复：打包mdd时，AMB报错“UnboundLocalError: local variable ‘pack\_flg’ referenced before assignment”，系在引用变量 `pack_flg` 之前该变量未被赋值。在函数 `_build_mdd` 函数定义后增加赋值语句 `pack_flg = True` 可解决问题。

2. AMB解包功能基于mdict\_utils，不能完全代替MdxExport，例如  
对这本 [古漢語同義詞詞典.mdx](https://forum.freemdict.com/uploads/short-url/lFyUmeF32dRrpHIHR2CryYJbNlI.mdx) 即无能为力，只能使用MdxExport。兄可考虑添加支持~

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年8 月 25 日 07:37 UTC](https://forum.freemdict.com/t/topic/22044/50 "2023-08-25T07:37:47Z")

</div>

谢谢反馈

> [@SilasYang](#):
>
> 赋值语句 `pack_flg = True` 可解决问题

兄台慧眼，这个 bug 后面发现修复了的，不过没 push

> [@SilasYang](#):
>
> 对这本 [古漢語同義詞詞典.mdx](https://forum.freemdict.com/uploads/short-url/lFyUmeF32dRrpHIHR2CryYJbNlI.mdx) 即无能为力，只能使用MdxExport

是的，mdict\_utils 不支持此种压缩方式的解包：

> [@新手指南：怎样编辑mdx？](https://forum.freemdict.com/t/topic/16431/28):
>
> 补充一点，compatHTML格式的mdx用mdict-utils无法解压出style.txt，并且mdict-utils只支持UTF8编码

这在贴子里也总结了，就不考虑了

> [@Mdx 打包软件哪个好](https://forum.freemdict.com/t/topic/21988):
>
> 目前已知有三种打包 mdx 的方式： MdxBuilder.exe (Version 3.0) MdxBuilder.exe (Version 4.0) [mdict-utils](https://github.com/liuyug/mdict-utils) (Version 3, Python) 前两种是官方打包工具，其中用 4.0 版本打包后似乎不可逆，那么暂且只讨论第 1 和第 3 种打包方式的差异，第 1 种是官方打包程序，用它打包的词典使用上肯定没问题，本人一…

---

<div class="post-metadata">

作者： ![Su6i](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/s/fbc32d/32.png) [@Su6i](https://forum.freemdict.com/u/Su6i)\
发布日期： [2023 年9 月 13 日 00:01 UTC](https://forum.freemdict.com/t/topic/22044/51 "2023-09-13T00:01:38Z")

</div>

感谢您制作出这个自动化软件  
接下来我要找个小型词典练练手了！

---

<div class="post-metadata">

作者： ![遇山归霞](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/%E9%81%87/ccd318/32.png) [@遇山归霞](https://forum.freemdict.com/u/%E9%81%87%E5%B1%B1%E5%BD%92%E9%9C%9E)\
发布日期： [2023 年9 月 26 日 05:18 UTC](https://forum.freemdict.com/t/topic/22044/52 "2023-09-26T05:18:00Z")

</div>

1.3的模式A抓取出来的图片顺序是乱的，或者就是直接不显示，我debug了一下没发现啥问题，后面用1.2版本的顺序就正常了，不知道Man兄是否清楚是怎么回事？

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年9 月 26 日 07:24 UTC](https://forum.freemdict.com/t/topic/22044/53 "2023-09-26T07:24:19Z")

</div>

按道理是一样的。样板 demo 跑了有问题吗，如果没问题的话，估计是 settings.py 文件中的值没对好

---

<div class="post-metadata">

作者： ![遇山归霞](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/%E9%81%87/ccd318/32.png) [@遇山归霞](https://forum.freemdict.com/u/%E9%81%87%E5%B1%B1%E5%BD%92%E9%9C%9E)\
发布日期： [2023 年9 月 26 日 08:15 UTC](https://forum.freemdict.com/t/topic/22044/54 "2023-09-26T08:15:56Z")

</div>

![image](https://forumcdn.freemdict.com/uploads/default/original/3X/2/6/268a5d7c50596a57c890cf10c90e5fc923d78ed6.png)  
demo是没有问题的，是做新词典的时候发现的问题，settings.py我基本也只改了名字和起始页 🫠  
 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/6/9/69be54465fd35278b1294c3407f994b8fb037491.jpeg)

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年9 月 26 日 08:46 UTC](https://forum.freemdict.com/t/topic/22044/55 "2023-09-26T08:46:33Z")

</div>

是页面整体偏移了吗，还是说页码是随机乱的

---

<div class="post-metadata">

作者： ![遇山归霞](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/%E9%81%87/ccd318/32.png) [@遇山归霞](https://forum.freemdict.com/u/%E9%81%87%E5%B1%B1%E5%BD%92%E9%9C%9E)\
发布日期： [2023 年9 月 26 日 09:02 UTC](https://forum.freemdict.com/t/topic/22044/56 "2023-09-26T09:02:15Z")

</div>

大部分是连续的像是整体偏移，但是中间会偶尔插入一些非正文页，例如：

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/b/e/bec259d9c2af14588c5aa9afe4393312418ca1b3.png)

---

<div class="post-metadata">

作者： ![amob](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/amob/32/14630_2.png) [@amob](https://forum.freemdict.com/u/amob)\
发布日期： [2023 年9 月 30 日 19:43 UTC](https://forum.freemdict.com/t/topic/22044/57 "2023-09-30T19:43:39Z")

</div>

模板D是不是对全索引格式要求很严格？我怎么靠近案例都没通过。楼主能否帮我看看？

---

<div class="post-metadata">

作者： ![Vim](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/vim/32/8408_2.png) [@Vim](https://forum.freemdict.com/u/Vim)\
发布日期： [2023 年9 月 30 日 23:37 UTC](https://forum.freemdict.com/t/topic/22044/58 "2023-09-30T23:37:01Z")

</div>

十一假期终于可以好好体验这个期待已久的工具了 🤣

---

<div class="post-metadata">

作者： ![Mandolin](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/mandolin/32/4948_2.png) [@Mandolin](https://forum.freemdict.com/u/Mandolin)\
发布日期： [2023 年10 月 1 日 02:26 UTC](https://forum.freemdict.com/t/topic/22044/59 "2023-10-01T02:26:16Z")

</div>

全索引就是要严格有序，章节标题和词目混在一起排

---

<div class="post-metadata">

作者： ![Vim](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/vim/32/8408_2.png) [@Vim](https://forum.freemdict.com/u/Vim)\
发布日期： [2023 年10 月 1 日 03:12 UTC](https://forum.freemdict.com/t/topic/22044/60 "2023-10-01T03:12:18Z")

</div>

体验了一下，非常棒！特别是对于带有书签的PDF书籍，要转换为mdx，简直不要太方便！赞！

最终词典用户角度看，有个待改进之处：模版A、B的导航使用上下页翻页后，难以方便的回到目录。

[上一页](https://forum.freemdict.com/t/topic/22044.md?page=2)

[下一页](https://forum.freemdict.com/t/topic/22044.md?page=4)
