一键制作图片词典 MdxSourceBuilder

github已提交升级,欢迎享用。

  • [X] Feat: 可添加多个不同类型的额外文件,更加灵活方便了
  • [X] Feat: 可设置词条定位百分比信息是否显示
  • [X] Feat: 可设置词条导航是否显示最近的词条
  • [X] Feat: 可设置页码位数,默认为4,可设置3及以上
  • [X] Perf: 页码导航显示更多页码
  • [X] Perf: mdx文件名可以使用空格
  • [X] Fix: 词条风格2兼容tab和空格
3 个赞

最新完整正式案例(带源码):

3 个赞

感謝 Vim 兄分享優質佳作…讚!

1 个赞

已升级支持sourceStyle 3,案例:火星词典.Body.Part3.txt

词条A      0001
词条B      0002
词条X      0010

重大升级:增加多层级导航体系。

案例:

关于多层级导航系统的更多案例:

新案例:

1 个赞

你好楼主,我正在试着能否自己生成英美文件词典,可是连txt都不能生成。第一次用Vim,实在不知道哪里有问题。
我按主楼所说打开关闭,可是什么也没有。
我以为是因为没装python,就将 let s:autoMdxPack = 0,可还是什么也没有。
希望楼主能拨冗指导,成分感谢!
win10 gvim82


打开之后就是这样


版本参数

估计工作路径不在当前目录吧。
输入命令 :pwd 即可查看当前工作目录。若与当前mdxsourcebuilder的文件所在目录不同,就使用 :cd 可以切换工作目录 (与cmd中的cd命令一样使用)。

1 个赞

也可以使用 mdxsourcebuilder附带的 _vimrc 配置文件,将其放在 c:\Users%%yourname%%\vimfiles\ 下,重启vim。

之后,你用vim打开 mdxsourcebuilder.vim,然后用 命令 :CD (注意,是大写的字符),即可自动切换当前工作目录到mdxsourcebuilder.vim文件所在的目录。

===—补充:

通常不需要上述那么麻烦,只要:
1、关闭所有vim窗口
2、直接在文件上右键用vim打开

如此,vim会自动将文件所在目录设为当前工作目录。

2 个赞

感谢感谢!晚上来试试。

我滴个娘嘞,终于把txt搞出来了,直接右键打开不行,得先:new 再来:so mdx它才工作。

就是为什么这么小,是不是哪里又不对?三个文本加一起有400多k,生成的txt只有196k
试了几次,从压缩包重新解压,也不行。
我将您网站的火星词典文件都下载下来了,几个txt文本总共740k多,生成的txt有22.6M
麻烦您再给解解惑。感谢感谢!

首先,只要能输出就说明程序工作正常,甭管文件大小。
其次,文件大小取决于很多因素,主要与词条多少和配置的参数有关(参数控制如何输出,比如是否输出导航条,大小就会相差好几倍)。

MdxSourceBuilder.vim已经内置了教程和容错提示,只要严格照做基本不会有问题:

最简单的教程:

出错提示也有(底部):
image

1 个赞

是有些奇怪400进去,只出来196,以为哪又错了。

是的。只是一个是新软件不熟悉,再一个想走捷径,有了GUI不想敲键盘 :joy:

1 个赞

楼主你好,请问图片名称在哪里设置呢?

1 个赞

2 个赞

我碰到了一个棘手的问题,就是生成的mdx,没有上一页,下一页功能,有些词条是跨页的导致我看不到,举例来说
我使用格式如下的索引
A 001
B 003
C 010
生成的结果中导览行只显示1,3,10,当我想看词条A的第二页,词条B的后面7页时完全看不到,同时没有翻页功能,我不知道应该怎么办?虽然我可以在索引里打上002,004,005,006……但是对我来说工作量巨大,而且我举出的例子,编码是从小到大按顺序的,实际的索引文件是乱序的,更难找出缺了什么页?我应该怎么做?

很简单:直接添加一份完整无遗漏的页码(没有关键词,仅有页码,可以用Excel快速生成)到词条末尾(其实放任意位置都可以,放最后只是方便以后添删改)即可。

程序会自动处理:若该页面之前无词条,则根据这个页码添加上下页;若该页面已有词条,这里重复添加的页码会被处理掉,所以也就不会有任何影响。因此你不必担心是否重复的问题,也不必关心排序的问题。

关于页码的灵活性,程序已经附带有案例:火星词典.Body.Part3.txt

明白了,非常感谢。

今天第一次尝试这个工具制作图片词典,报了两个错:
E121: Undefined variable: g:dictionaryParts
E484: Can’t open file MdxSourceBuilderMultiLevel.vim

关于 E121 错误:

let g:dictionaryParts 里我没有设置,因为是用的下面的“多层级词条”。
let g:dictionaryParts 里必须设置吗?目前我先把处理这块的代码给注释掉了

关于 E484 错误:

是按下面这样设置的,为啥还是报E484错误了:
let g:multiLevelParts = [[
        \["cgel_body_title1.txt", 3, 0, 1],
        \["cgel_body_title2.txt", 3, 0, 1],
        \["cgel_body_title3.txt", 3, 0, 1],
        \["cgel_body_title4.txt", 3, 0, 1],
        \["cgel_body_title5.txt", 3, 0, 1],
        \["cgel_body_title6.txt", 3, 0, 1],
        \], "CGEL_EN_", ".png", 2]

更新:
原来是忘了拷贝这个文件到目录里:MdxSourceBuilderMultiLevel.vim

我再研究下