分享

【电子辞典】自制 Mdict(图像版)之制作 mdx 文件 – Litles的博客

 弘护正法 2020-04-04

此文为自制 Mdict(图像版)系列之 mdx 文件制作。

制作图像版 Mdict 辞典可分为三步:①图片处理 ②识别和校对词头 ③制成 mdx。这里要介绍的是制作 mdx 文件,因此在此之前你应该完成了前两步。 制作图像版 mdx 比一般的文本版 mdx 要容易得多,因为不需要复杂的排版的大量的文本处理。

材料准备。在制作 mdx 之前,请确保已准备好需要的材料,主要的两个为:

① 已处理好(裁剪、优化等)的图片,比如

② 已校对并处理好的索引,格式如

一、图片命名

对处理好的图片进行统一有规则的命名是很有必要的,能方便后续的处理。命名的规则不是唯一的,但一定要统一、有规律,方便自己处理即可。批量命名工具有 Renamer 等,选一个就好。

对于一本辞典或书籍,笔者处理图片时往往将其分为三个部分⸺正文前、正文、正文后,并分别针对性处理。因此笔者命名时也依照此规则分为三部分,名称前缀分别为(以《数学辞海》为例):SXCH_L、 SXCH_、 SXCH_R。前缀后则跟图片序号(都从1开始),序号统一位数,比如正文部分:

二、索引文本处理

图片命名好后就可以开始处理索引文本了。对于图像版辞典,mdx 实质上就是一个索引文件,因此索引文本的处理就是要使得词头和图片能一一对应。笔者处理索引的思路大致是,先将页码与图片一一对应,再将词头与页码对应,这样就形成了词头与图片的对应。因此处理索引文本一般分三个步骤:
① 建立页码索引
② 建立重定向索引
③ 其它加工

(一)建立页码索引

由于图片分成了三个部分,因此可以分别进行处理。处理过程此处借用 EmEditor 和 Excel 这两个软件,以正文为例:

① 打开 Excel,生成一个页码序列

选项位置:开始⸺填充⸺序列

② 再得到减一和加一的序列,并将设置好三列的单元格格式

③ 复制粘贴到 EmEditor 中进行替换处理(使用正则)

# 查找
^(.+)\t(.+)\t(.+)\n

# 替换为
SXCH_\1\n<img src="/SXCH_\1.png" width="1080px"><br/><center> <a href="entry://SXCH_\2">上一页</a> <a href="entry://SXCH_\3">下一页</a></center>\n</>\n
替换后的结果

完成后或许你也注意到其中的第一页的“上一页”和最后一页的“下一页”实际是不存在的,因此你可以删除对应的代码。得到的此文本文件先保存备用(编码请统一使用 UTF-8,后同),后面需要和其它部分合并。

(可选)单栏版生成方法

单栏版辞典 mdx 的制作和整页版只有这一步不同,因此此步的同时可以制作单栏版页码索引。假设已提前分栏、裁剪好图片,有单栏版图片,命名方式和整页版相同(加“_1”和“_2”等后缀),如“SXCH_0001_1”,那么可以直接对上面得到的整页版页码索引进行正则处理(以分两栏的情况为例,这里只处理正文,其它若要处理类似):

 # 查找
(<img src="/SXCH_[\d+])(.png" width="1080px">)<br/>

# 替换为
\1_1\2<details><summary>下栏</summary>\1_2\2</details> #这样处理会使第2部分默认收拢,如不需要可以去除

(二)建立重定向索引

页码和图片建立一一对应后,接下来就可以进行关键的词头和页码对应,最终得到的词头和图片的对应便是通过这个重定向完成的。

① 通过 Excel 处理将索引中页码统一位数,得到如下格式

② 在 EmEditor 中进行替换处理

 # 查找
^(.+)\t(.+)\n

# 替换为
\1\n@@@LINK=SXCH_\2\n</>\n
替换结果

以上是正文索引示例,正文前、正文后同理。完成后将页码和图片对应、词头与页码对应合并在一起便是一个完整的索引文本,如果不需要后续的加工,那么可以直接去 mdxbuilder 生成 mdx 文件。

(三)其它加工

通过上面两步得到的索引文本已经可以生成 mdx 进行使用了,如果你想添加更多元素或改进排版,可以在此基础上进行加工,比如添加目录、使用说明等,相信到这里你自己已经能摸索到怎么 DIY 了,主要就是考验正则表达式的使用,这里就不举例了。

三、生成辞典

索引文本制作完成后就可以去执行最后一步了⸺生成 mdx 文件,也就是制作 Mdict 辞典的最后一步。准备好索引文本文件和存放图片的文件夹,打开 Mdxbuilder,示例配置如图:

其中可以在 Description 中添加辞典的关于信息(支持简单 html 语法),示例:

<font size=5 color=red>名称:测试<br>编者:XXX<br>出版社:XXX<br>出版日期:xxxx年xx月<br><br>-Mdict:by xxx<br>-Entries:10000<br>-Latest release:2020-1-1</font>

最后显示会是这样:

名称:测试
编者:XXX
出版社:XXX
出版日期:xxxx年xx月

-Mdict:by xxx
-Entries:10000
-Latest release:2020-1-1

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多