全新的mdx/mdd词典制作工具

我用 用 pyglossary 转换词典 也是修改好发音 链接 接着 make 编译词典的时候没有用到这么长时间呢

我看了 pyglossary, 具体编译的时候调用 mac ddk 和 pyglossary 提供的 makefile, 两者执行的 mac ddk 命令实质上是一样的, 至于你说的运行时间较短, 具体原因就不太清楚了, 不过之前说的功能我已经添加了, 见 v0.2.2

已经在下载中了 :grinning:

<hr class="hrz"> 的标签会解析掉 / , 之前是
<link href="concise_bing.css" rel="stylesheet" type="text/css"/ /> 多一个 / , 现在解析没问题

Error: [src/main.rs].[209]: Failed to create mac dictionary

Caused by:
    0: [src/mac.rs].[180]: cannot run command '/Users/vivian/Library/Application Support/wikit/macddk/bin/build_dict.sh' 'concisebing' '/Users/vivian/Downloads/dict/wikit/concise_bing.xml' '/Users/vivian/Downloads/dict/wikit/concise_bing.css' '/Users/vivian/Downloads/dict/wikit/concise_bing.plist'
    1: [src/util.rs].[96]: /Users/vivian/Downloads/dict/wikit/concise_bing.xml:6: parser error : Opening and ending tag mismatch: hr line 6 and div
       s="dne">游戏;一个游戏;一局</span></div></div><hr class="hr2"/></div>
                                                                                      ^
       /Users/vivian/Downloads/dict/wikit/concise_bing.xml : failed to parse
       Error.

我修改了 <hr class="hrz"/>

wikit 目录下执行

make

make: *** No targets specified and no makefile found.  Stop.

或者我应该在 wikit 目录外操作 make 带上目录 wikit ??

你最开始执行的命令重新执行一下就可以了.

/Applications/wikit dict --create /Users/vivian/Downloads/dict/concise_bing.mdx --output ~/Downloads/dict/concisebing.dictionary

这个命令 ? 不会重新生产词典目录?

不会的, 直接执行就可以

奇怪!!

出现报错后 我执行

sed -i .bak 's#<hr class="hrz">#<hr class="hrz"/>#g' concise_bing.xml

事后查看 concise_bing.xml 文件 是否是


查看替换成功后, 才执行

/Applications/wikit dict --create /Users/vivian/Downloads/dict/concise_bing.mdx --output ~/Downloads/dict/concisebing.dictionary

执行后又出现报错, 同样的错误, 我查看 concise_bing.xml 文件 发现 <hr class="hrz"/> 又是<hr class="hrz">

我非常确定替换成功,且事后去 concise_bing.xml 文件确认过

这个是你没有正确替换导致的, 你这个问题我本地已经遇到过了, 正确替换之后没有问题的.

:u6709:试了一次, 直接在vim 里面替换成


, 执行

/Applications/wikit dict --create /Users/vivian/Downloads/dict/concise_bing.mdx --output ~/Downloads/dict/concisebing.dictionary

依旧失败, 提示:

[+] Open mdx soure file ...
[+] Create mac dictionary ...
[+] Running Mac DDK ...
Error: [src/main.rs].[209]: Failed to create mac dictionary

Caused by:
    0: [src/mac.rs].[180]: cannot run command '/Users/vivian/Library/Application Support/wikit/macddk/bin/build_dict.sh' 'concisebing' '/Users/vivian/Downloads/dict/wikit/concise_bing.xml' '/Users/vivian/Downloads/dict/wikit/concise_bing.css' '/Users/vivian/Downloads/dict/wikit/concise_bing.plist'
    1: [src/util.rs].[96]: /Users/vivian/Downloads/dict/wikit/concise_bing.xml:6: parser error : Opening and ending tag mismatch: hr line 6 and div
       s="dne">游戏;一个游戏;一局</span></div></div><hr class="hr2"/></div>
                                                                                      ^
       /Users/vivian/Downloads/dict/wikit/concise_bing.xml : failed to parse
       Error.

那我该怎么替换呢, 替换后 , 我还去了文件看了 确认替换成功呢

1 个赞

?? 我之前其他的词典文件都是用

sed -i .bak 's#<hr class="hrz">#<hr class="hrz"/>#g' concise_bing.xml

替换成功? 作者替换的命令可以说一下吗?

你这个命令没有错, 不过不是替换 xml 是替换中间生成的 txt 文件, 你看一下项目主页的说明

好的 ,是我找错文件呢, 又有个报错

Error: [src/main.rs].[209]: Failed to create mac dictionary

Caused by:
    0: [src/mac.rs].[180]: cannot run command '/Users/vivian/Library/Application Support/wikit/macddk/bin/build_dict.sh' 'concisebing' '/Users/vivian/Downloads/dict/wikit/concise_bing.xml' '/Users/vivian/Downloads/dict/wikit/concise_bing.css' '/Users/vivian/Downloads/dict/wikit/concise_bing.plist'
    1: [src/util.rs].[96]: /Users/vivian/Downloads/dict/wikit/concise_bing.xml:21025181: parser error : Opening and ending tag mismatch: span line 65535 and br
       ="hrz"/><div class="git"><span class="ipa">[vĭdāʹté, IPA: /vɪˈdeɪte/</br>
                                                                                      ^
       /Users/vivian/Downloads/dict/wikit/concise_bing.xml : failed to parse
       Error.

vim 没法跳转到 21025181行 , 卡住了 作者用什么软件修改的

我看了 这一行 21025181

videte
<link href="concise_bing.css" rel="stylesheet" type="text/css"/><div class="bdy" id="ecdict"><div class="ctn" id="content"><div class="hwd">videte</div><hr class="hrz"/><div class="git"><span class="ipa">[vĭdāʹté, IPA: /vɪˈdeɪte/</br></br>or as in post-Classical Latin]</span></div><div class="gdc"><div class="dcb"><span class="dcn">videte (plural imperative verb; singular vide)</span></div><div class="dcb"><span class="dcn">See; consult; refer to! A remark directing the readers to look to the specified place for epexegesis.</span></div><div class="dcb"></div></div><hr class="hr2"/></div></div>
</>


没发现哪里错误啊? 我复制出来放到 IDE 里面看的。 作者有遇到这个错误吗?

是否是因为 : <span class="ipa">[vĭdāʹté, IPA: /vɪˈdeɪte/</br></br>or as in post-Classical Latin]</span>

</br> 需要是 <br />

1 个赞

谢谢 。 已经在解析中 。 非常慢

一本词典需要跑这么长时间 , 是否哪里存在问题呢! 作者

我用的 GitHub - chmln/sd: Intuitive find & replace CLI (sed alternative)

这个问题我之前已经说过了, 是 mac ddk 的问题, 不是解析的问题哈, 从 mdx 生成 macddk 所需文件 wikit 只需要几分钟(concise-bing 这本有 2.4G 的源文件, 约430万词汇), 之后就是调用 macddk 生成 mac 词典.

你可以打开进程列表看一下, 一直在工作的是 macddk 里面的 add_body_record 这个工具, 因为 macddk 是闭源, 这个没办法优化, 已经超出工具能做的范畴了.

另外, concise-bing.mdx 转换为 macos 词典我这边已经完成了, 你可以看一下下面的时间, 做好心理准备…

> ./target/release/wikit dict --create --output ${HOME}/Downloads/bing-test/concise-bing.dictionary ${HOME}/Downloads/bing-test/concise-bing.mdx

[+] Open mdx soure file ...
[+] Create mac dictionary ...
[+] Running Mac DDK ...
- Building concise-bing.dictionary.
- Checking source.
- Cleaning objects directory.
- Preparing dictionary template.
- Preprocessing dictionary sources.
- Extracting index data.
- Preparing dictionary bundle.
- Adding body data.
- Preparing index data.
- Building key_text index.
- Building reference index.
- Fixing dictionary property.
- Copying CSS.
- Finished building /var/folders/1l/vfwb_b_57ld4_cdksf6wdtwr0000gn/T/wikit/concise-bing.dictionary.

[+] Copy dictionary generated at '/Users/biu/Downloads/bing-test/concise-bing.dictionary' into ~/Library/Dictionaries
[+] Create mac dictionary is done

~/dev/wikit master !6                                                                                                            22h 49m 29s

注意时间在右下脚时间约为 23h.

再多说一句, mac ddk 的词汇上限貌似是有限制的(仅仅是猜测), 因为从 t 之后的单词释义都查不到了, 但是单词能查到, 具体原因未知. 上一张 concise-bing 的图

需要说明的是之前的 RHWDAE 这本词典是没有任何问题的, 不存在只有单词没释义的情况.