聊一聊制作mdx词典时那些容易踩到的坑

我来更新 4 个。

No.1 转化词头当中的 HTML 符号实体 或者 HTML URL 编码

  • HTML URL 编码貌似 BeautifulSoup 当中的 html.parser 可以自动转化,但 HTML 符号实体不行,导致英文词库的词头经常得输入 & 才能查到 & 相关的词组。
  • 建议使用单独的 html.parser 或者用文本编辑器批量替换。

No.2 自闭合标签

  • MDX 中常用的自闭合有 link img br source。
  • 发现一些制作者会在 HTML 中将 script 错当成自闭合。
    没有正确闭合的话,容错能力强的软件没多大问题,但对 GoldenDict 用户来讲是种灾难。
    今早刚发现 Thesaurus.com 2020 source 写错了,奈何文件已删除,请各位自行解包 mdx,将 < /source> 删掉。

No.3 转化链接中的标点

  • URL当中的 ? 需替换为 %3F(多平台)。
  • URL当中的 " 需替换为 %22。
  • BeautifulSoup 并不能保留 url 中的引号,或者将其转为 %22,而会把引号及内容分成属性和属性值。这种情况不是很常见。
假设:
<a>I love "U"</a>

处理成了:
<a href="entry://I love "U""> I love "U" </a>

经过解析后,会变成:
<a href="entry://I love" U=""> I love "U" </a>

▲ MDX 中,一些特殊字符采用 URL编码反倒不能正确跳转 (比如 ® )。

转标点符号这个问题,我在提取词组跳转到主词条时经常会忘记而费时返工。

No.4 去除空白行和首尾空白

  • 获取标签内容作为词头或者 url 时,要去除前后空白。
  • 空白行会导致无法打包,这时候需要用编辑器定位到提示的字节进行修改。
    Emeditor 支持字节定位,ctr+g 输入数字即可。
    image

今儿个修了自己发现的 Free Dictionary of Idioms 2020 当中存在的以上问题。
P 站更新链接点这里,目前里面的百度网盘链接还没有更新,奶牛链接里的是最新版

image

1 个赞