一键制作图片词典 MdxSourceBuilder

现有方案已经是我能想到的最懒的了。

至于MdxSourceBuilder、Vim、Python、mdict-utils等,建议还是到官方网站下载安装,这样才能保证都用上新版并避免病毒侵害。而且官方网站下载也都很简单,无非就是找到download等字样,点击一下。

1 个赞



你好,我安装完Vim、Python、mdict-utils等,运行MdxSourceBuilder.vim无法生成“火星词典.mdx”,还有什么必须的组件没安装完全吗?

没有其他软件要安装的了。只是要检查你的python版本是否与vim匹配。

检查方法:

  1. 打开vim
  2. 输入命令 :version
  3. 用空格键一直往后翻到最后,看到python字样,看看后面跟着的是37 or 38 or 其他,那么这个就是要求的python版本了。目前你安装的版本是python 3.8.x

比如我的vim配对的就是3.7.x。因为vim也在不断更新,所以大家得自己判断其支持的python版本。

vim必须注意用来编译的python版本和位数,比如32位的vim不能用 :py3 调用64位的python
python3.8的可以用github上每天更新的版本: Releases · vim/vim-win32-installer · GitHub

neovim不管python版本多少,只需要 pip install pynvim(试验了一下,自带的demo可以用neovim运行)

1 个赞




还是不能生成MDX文件,困扰我一个多小时了。

python安装时,是否将“加入系统path”的选项勾上?只有这样,vim才能自动调用Python程序mdict,否则它找不到python。。。

比较简单的验证就是,你直接在cmd中运行,看看有什么提示:

  1. 在cmd中,用cd命令进入词典目录
  2. mdict -a 火星词典.txt 火星词典.mdx

谢谢解答,我试试。 :grinning:


直接用你所教方法,成功转成Mdx了。
但为何运行Mdx***.Vim不能直接生成 :joy:

1 个赞

你已经基本成功了,恭喜!

可能还是版本匹配的问题:
1、比如32位、64位。
2、比如python 37 or 38。

我自己使用vim:gvim_8.2.0057_x64_signed.exe,配套64位的python 3.7.8

简单的测试Python是否安装正确的方法:

  1. 打开Vim
  2. 执行 :py3 print(“Hello”),可以输出Hello,就是OK的。
1 个赞

建议把Vim与Python的版本问题解释一下。像我这样没用过Vim的新手,可能会遇到各种各样的问题 :rofl:


这些是我尝试的各种版本。 :rofl:

3 个赞

再次向大神请教关于词条与图片的对应关系的问题。

问题一:

火星词典.Body.Part1中:

0001

吖嗪

阿鼻地狱

0001 这个0001对应的是图片名称吗?即对应的是:0001.png
0001 这个0001下面的所有汉字对应的是0001.png(假设图片是png)这张图上面的所有词头吗?

问题二:

火星词典.Cover中:

0001
封面
0002
扉页
0003
版权
0004
审订委员会
0005
0006
获奖

0005下面没有内容,所表示的是0005这张图是接着0004这张图的内容,也就是说如果是具体的词条,那么就是该词条一页并没有显示完,在接下来的一页有继续显示,是这样的意思吗?

不好意思哈,屡次麻烦大神,烦请大神不吝赐教,感谢!

答案1:0001对应的图片名称要加上前缀名和后缀名(如图所示的定义),是 MarsDict_0001.png。否则不同部分的0001岂不是都重名了?

后面的汉字就是这个页面对应的所有关键字,一行一个。

答案2:0005可以是任何内容,比如空白页或其他没什么意义的内容,或者是0004的延续,或者纯粹就是我不想弄这个页面的词条,或者我还没完工有待完善之类。总之,0005就是点击上下页你可以看到,但是通过关键词没法查询(当然是指除了MarsDict_0005这种无意义的关键词)。按自己的意愿,想添加词条就添加,不想添加就不加。

如果你连页码点击上下页都不想看到的话,那就0005也可以删除,比如空白页,或者有些书籍中的练习部分。这样你就可以跳过这些页面,让它们彻底从词典中消失。

这些特点也是这个软件相对于之前Excel版本灵活的地方。当你还没完成词条时,就可以用这个软件快速生成半成品,用于观摩、展示或校验效果,这样制作词典的过程就会变成享受,而不是痛苦。

1 个赞

明白啦,谢谢您!

vim师,tsv格式的索引应该是最为“自然”的索引,也就是tab分隔的数据。 如果能直接提供这种格式的索引可能最为便捷,而且跟正则处理词典文件的制作方式也能完美衔接。

目前PageKeywordStyle的“2”已经支持tsv这种格式的,直接使用,不必升级。

PageKeywordStyle的“2”其实同时兼容4个及4个以上空格的分隔符(因为很多人更喜欢空格而不是tab,但空格又容易出错,所以兼容了4个及4个以上的空格)。

image

真实词典案例:

國語日報辭典 - 使用MdxSourceBuilder重制导航

(出处: 掌上百科 - PDAWIKI)

在这个案例中,还增加了一个功能:可以添加现成的mdx源文件。其妙用:特别适合于类似案例这种港澳台等表达习惯不同的情形,要添加额外@@@LINK到已有词条的内容。

Update: 鉴于这种情形应该还是挺常见的,已更新至程序,并添加了相关案例。

Update:增加了防错机制,对词条、info等文件的编码都不做要求,无论gbk或utf-8,还是bomb或nobomb,系统均会自动处理。

2 个赞

新拟声拟态词词典.zip (29.7 MB)

Vim大神,我尝试制作了一下这本辞典,发现不能生成mdx呢,也没有错误提示。

我把所有文件上传这里您有时间的时候能帮忙看一下哪个地方出问题了吗?(完全新手,可能出现非常低级的问题,请大神不吝赐教,谢谢!)

多次麻烦,非常感谢!

帮你调整好了,你自己用程序输出。

主要问题:

  1. 页码:4位,不足用0补全
  2. 图片:将书分成几个部分,每个图片的编号最好与真实的页码一致,这样使用时才舒服;每个部分的图片类型要一致,要么都是jpg,要么都是png。
  3. 每个部分最好用不同的前缀。
  4. 词条:每个图片都要有对应的页码;页码 + 关键词的格式要满足相关格式要求。

新日汉拟声拟态词词典.zip (29.9 MB)

1 个赞

今天玩了个100KB的TXT源文件,就说内存不足。继承了Vim难处理大文件的通病? 还要跟处理大词库的mdict-utils搭配,行得通吗?作者有必要处理这问题。