# 【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:** 12

<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 年12 月 28 日 13:00 UTC](https://forum.freemdict.com/t/topic/22044/224 "2023-12-28T13:00:25Z")

</div>

多层级目录不能共用一个词条，这会带来麻烦。  
以“万”字举例，【L1】一【L2】二画【L1】W【L2】wàn,这两个目录层级是分离的。希望万可以同时纳入两个目录下，以显示部首和拼音索引。  
现在要实现这个效果，词条得重复录入一次,同时存在于两个目录下。而且检索时也会显示两块内容，多少有些赘余。  
最好希望可以实现顶栏同时显示多层目录，类似以下这样。

```auto
<hr/>
一>二画
W>wàn
<hr/>
**万**

```

---

<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 年12 月 28 日 13:29 UTC](https://forum.freemdict.com/t/topic/22044/225 "2023-12-28T13:29:50Z")

</div>

明白你意思了，就是一套词条，两套分类。目前的方案是跟着原书的结构来的，不管有多少分类系统，正文肯定只能选其一来行文，比如经典的现汉词典，正文就是音序 W-\>Wan-\>万 这个结构的，而笔画的分类系统，只是在检索辅页里出现。

> [@amob](#):
>
> 现在要实现这个效果，词条得重复录入一次

要两套分类，肯定都得各录一次。比如假如要实现你说的这样两套目录，那么就要准备两个 index\_all:

index\_all\_目录结构一.txt  
index\_all\_目录结构二.txt

然后运行AMB生成你说的这种结果

---

<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 年12 月 28 日 13:32 UTC](https://forum.freemdict.com/t/topic/22044/227 "2023-12-28T13:32:19Z")

</div>

那未来可以实现多层目录结构合并功能吗？第一个index\_all.txt词条有内容，第二个index\_all.txt重复词条只有词头而无词条内容，只放目录结构。这样方便实现吗？

---

<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 年12 月 28 日 13:35 UTC](https://forum.freemdict.com/t/topic/22044/228 "2023-12-28T13:35:38Z")

</div>

> [@amob](#):
>
> 第一个index\_all.txt词条有内容，第二个index\_all.txt重复词条只有词头而无内容，只放目录结构

可以，只要有一套是完整的带页码索引的就行，其他的可以只有结构

* * *

把所有层级都展示到底的功能则似乎用处不大，而且对小屏幕不友好，就先不考虑了。

---

<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 年12 月 28 日 13:47 UTC](https://forum.freemdict.com/t/topic/22044/229 "2023-12-28T13:47:29Z")

</div>

> [@Mandolin](#):
>
> 把所有层级都展示到底的功能则似乎用处不大，而且对小屏幕不友好，就先不考虑了。

这个可以考虑像说文解字一样用小三角形折叠，很美观。

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/f/8/f8b35e818cf251482f90df66990be74e375da9ec.png)  
👉  
 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/2/f/2f6ef5fd0dd683f17670f0ffe395c762704f5fb4.png)

---

<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 年12 月 28 日 13:53 UTC](https://forum.freemdict.com/t/topic/22044/230 "2023-12-28T13:53:05Z")

</div>

> [@amob](#):
>
> 用小三角形折叠

折叠隐藏的话，那和现在 模板B 没有本质区别吧，都是需要点击进入另一层级。全部展示的意义想必就是为了一次看全，这个怎么说呢，用处也不是那么大。

* * *

或者可以折中一下，再向后展示一层，这样其实就够了

---

<div class="post-metadata">

作者： ![iandros](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/i/8e8cbc/32.png) [@iandros](https://forum.freemdict.com/u/iandros)\
发布日期： [2023 年12 月 30 日 10:19 UTC](https://forum.freemdict.com/t/topic/22044/231 "2023-12-30T10:19:20Z")

</div>

兄台好，这个链接不见了，能否再补一下儿？

---

<div class="post-metadata">

作者： ![bufong](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/f04885/32.png) [@bufong](https://forum.freemdict.com/u/bufong)\
发布日期： [2023 年12 月 30 日 12:08 UTC](https://forum.freemdict.com/t/topic/22044/232 "2023-12-30T12:08:39Z")

</div>

大佬能否加个第5种，图文综合版？  
主要看文字版，但有时候又需要核对下原文。

---

<div class="post-metadata">

作者： ![bufong](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/f04885/32.png) [@bufong](https://forum.freemdict.com/u/bufong)\
发布日期： [2023 年12 月 30 日 15:01 UTC](https://forum.freemdict.com/t/topic/22044/233 "2023-12-30T15:01:23Z")

</div>

![image](https://forumcdn.freemdict.com/uploads/default/original/3X/f/4/f44a187fc6e825976bde6400e4c8d79130006210.png)

简单来说，就是最下面的导航中间加一个页码的超链接。

---

<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 年12 月 30 日 15:05 UTC](https://forum.freemdict.com/t/topic/22044/234 "2023-12-30T15:05:05Z")

</div>

> [@bufong](#):
>
> 最下面的导航中间加一个页码的超链接

嗯嗯超链接的方式不错，简单快速。本来说想加个折叠按钮，点击展开图片，不过可能会影响页面加载速度。

* * *

到时候再测试一下，文本和图片在同一页还是更方便比对

---

<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)\
发布日期： [2024 年1 月 3 日 06:08 UTC](https://forum.freemdict.com/t/topic/22044/235 "2024-01-03T06:08:38Z")

</div>

最新的按y后继续使用20.生成词典会：

> PermissionError: [WinError 32] 另一个程序正在使用此文件，进程无法访问。: ‘D:\AutoMdxBuilder-main\_tmp\tmp\_final.txt’
> 
> ERROR: 由于上述原因, 程序已中止运行

python.exe占用了进程，还得手动解除占用。

---

<div class="post-metadata">

作者： ![Celestin](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/c/f4b2a3/32.png) [@Celestin](https://forum.freemdict.com/u/Celestin)\
发布日期： [2024 年1 月 6 日 08:52 UTC](https://forum.freemdict.com/t/topic/22044/236 "2024-01-06T08:52:29Z")

</div>

您好，我又扫描制作了一本图解图片词典，[https://forum.freemdict.com/t/topic/25905/2。一个词头对应多个页码的问题还是不好解决，没法手动去处理。您之前说的正则替换的方式能处理下吗？谢谢！](https://forum.freemdict.com/t/topic/25905/2%E3%80%82%E4%B8%80%E4%B8%AA%E8%AF%8D%E5%A4%B4%E5%AF%B9%E5%BA%94%E5%A4%9A%E4%B8%AA%E9%A1%B5%E7%A0%81%E7%9A%84%E9%97%AE%E9%A2%98%E8%BF%98%E6%98%AF%E4%B8%8D%E5%A5%BD%E8%A7%A3%E5%86%B3%EF%BC%8C%E6%B2%A1%E6%B3%95%E6%89%8B%E5%8A%A8%E5%8E%BB%E5%A4%84%E7%90%86%E3%80%82%E6%82%A8%E4%B9%8B%E5%89%8D%E8%AF%B4%E7%9A%84%E6%AD%A3%E5%88%99%E6%9B%BF%E6%8D%A2%E7%9A%84%E6%96%B9%E5%BC%8F%E8%83%BD%E5%A4%84%E7%90%86%E4%B8%8B%E5%90%97%EF%BC%9F%E8%B0%A2%E8%B0%A2%EF%BC%81)

---

<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)\
发布日期： [2024 年1 月 6 日 09:22 UTC](https://forum.freemdict.com/t/topic/22044/237 "2024-01-06T09:22:15Z")

</div>

> [@Celestin](#):
>
> 我在word中用选择“通配符”后搜索替换，不能识别^([^\d,]+)\s+(\d+)[,\s]+(\d+)[,\s]+(\d+)$

得用emeditor或者notepad2\notepad++勾选正则表达式，不过正则表达式有缺陷，一行不能多次匹配，复杂情况处理不了。像Mandolin写出来就很复杂了，如果索引页面更多得往后叠加长度再匹配。

---

<div class="post-metadata">

作者： ![Celestin](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/c/f4b2a3/32.png) [@Celestin](https://forum.freemdict.com/u/Celestin)\
发布日期： [2024 年1 月 6 日 09:53 UTC](https://forum.freemdict.com/t/topic/22044/238 "2024-01-06T09:53:57Z")

</div>

嗯嗯，我水平有限，这个要研究研究 😀 感谢您提供的“分割器”

---

<div class="post-metadata">

作者： ![tingan](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/t/ee59a6/32.png) [@tingan](https://forum.freemdict.com/u/tingan)\
发布日期： [2024 年1 月 7 日 03:04 UTC](https://forum.freemdict.com/t/topic/22044/239 "2024-01-07T03:04:09Z")

</div>

WARN: 检测到词典并非由 AMB 生成, 不保证词条顺序的准确还原  
 ![截屏2024-01-07 上午11.03.33](https://forumcdn.freemdict.com/uploads/default/original/3X/f/f/ff0d6e471572b9221b0061a78697bbc653eacc73.png)

---

<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)\
发布日期： [2024 年1 月 7 日 03:30 UTC](https://forum.freemdict.com/t/topic/22044/240 "2024-01-07T03:30:37Z")

</div>

> [@tingan](#):
>
> WARN: 检测到词典并非由 AMB 生成, 不保证词条顺序的准确还原

这个WARN可以无视，不会有任何影响

---

<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)\
发布日期： [2024 年1 月 7 日 13:03 UTC](https://forum.freemdict.com/t/topic/22044/241 "2024-01-07T13:03:34Z")

</div>

警告的标识语似乎应该用名词形式 warning

---

<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)\
发布日期： [2024 年1 月 7 日 13:08 UTC](https://forum.freemdict.com/t/topic/22044/242 "2024-01-07T13:08:58Z")

</div>

这个在 1.6 里是 INFO，1.6 里已全部规范化了

* * *

warn 和 warning 这个还真没注意😄，之前是按长短统一安排的INFO/WARN/ERROR，谢谢 Yang 兄提醒，回头我修改一下，有时间也搞个英文版好了

不过还有几个想要的功能没实现，也不知道哪天有兴致完善一下嗨

---

<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)\
发布日期： [2024 年1 月 8 日 04:55 UTC](https://forum.freemdict.com/t/topic/22044/243 "2024-01-08T04:55:35Z")

</div>

同一目录层级下，相同词头如何处理的？好像会被吞并，留后不留前？词典有因为前后读音不同互设参见的话不太好。  
分栏切割不正确怎么办，如何调整？毕竟有的词典不等宽。  
分栏css应该提供下所有情境都分栏的情况，方便不懂css的。

---

<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)\
发布日期： [2024 年1 月 8 日 05:49 UTC](https://forum.freemdict.com/t/topic/22044/244 "2024-01-08T05:49:06Z")

</div>

> [@amob](#):
>
> 同一目录层级下，相同词头如何处理的？好像会被吞并，留后不留前？

没有去重机制的，应该都保留了的

> [@amob](#):
>
> 分栏切割不正确怎么办，如何调整？毕竟有的词典不等宽。

这个是我照搬的，得问 @W2K 了，比如左右栏都展示 60% 的写法，我没测试过，应该是调整下面这两处的百分比：

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/f/a/fa7a2c73fa6a4b118eef4ba2577a17a071cb2bd1.png)

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

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