hexo-ruby-character:写作 A 读作 B

  1. 云栖社区>
  2. 博客>
  3. 正文

hexo-ruby-character:写作 A 读作 B

潘家邦 2016-01-26 13:24:07 浏览3139
展开阅读全文

关于「写作 A 读作 B」这种事情,虽然已经玩了许久,但是还是感觉挺有意思。其实「写作 A 读作 B」是日文书写中的旁注标记,用于表达「A 的正确含义是 B」1

早些时候,当我想要做旁注标记的时候,只能先把文字写上,发音写在括号里。其实这样的做法是很痛苦的,因为拼音的声调实在是太难输入了。

后来,iOS 的应用商店里出现了一款叫做「写(dú)」的 App,对我而言简直就是福音,我经常逛的一个推广优质应用的网站——少数派也专门为这个 App 写了博文,《喜(sàng)闻(xīn)乐(bìng)见(kuáng):写(dú)》。

从那以后,当我需要做旁注标记的时候,写(dú) 就是我最趁手的工具。直到这两天,我在给同事科普什么叫「鬼畜」的时候,无意间进入了绅士词条,然后就看到了这种黑科技般的注音方式!

绅士,或者ACG界更常见的写法是biàntài或hentai。

这种注音效果果然就是我想要的!一开始我还以为是用 CSS 实现的,翻看页面源码发现是 ruby 标签,之前从没见过,果然是图样图森破了。再看 Wiki 页面的源码,发现这是通过 Ruby Template实现的,再向上游追溯,就是 Wikipedia 了。

A Better Wheel

这么好玩的东西,我的博客也要用~于是经过我一个中午的 coding,一个全新的 hexo 插件——hexo-ruby-character 就来到了世界上。

我以 MIT 许可证将源码托管在 Github 上,欢迎交流。

从表面上看,这个插件其实是 Wiki 里面 Ruby Template 的一个复刻,算是另一个轮子,为什么我会认为它是一个更好的轮子?

先看 Wikipedia 给的例子。

{ruby|飞机|fēijī}{ruby|场|chǎng} → 飞机fēijī场chǎng

其实整个旁注标记中最难以输入的部分,就是拼音。而在 hexo-ruby-character 中,拼音不再是不必可少的了,取而代之的是汉字,用汉字给汉字注音。字音转换这种事情,自然是要交给机器代劳,不仅如此,还要站在巨人的肩膀上。

{ ruby 佐天泪子|掀裙狂魔 } → {% ruby 佐天泪子|掀裙狂魔 %}

在旁注标记中,字音不同是最常见的用法。假如需要标注真正的发音,那就更简单了。

{ ruby 飞机场 } → {% ruby 飞机场 %}

默认开启了分词之后,多音字的字音转换基本上不成问题,比如它能够区分{% ruby 星宿 %}和{% ruby 宿敌 %},{% ruby 家长 %}和{% ruby 长度 %}这种弱爆了的多音字测试更是不在话下。而这一切特性,都是 pinyin,以及它背后的 jieba 分词所提供的。

hexo-ruby-character 默认的行为是在拼音之间添加空格来区分音节。当然,如果不喜欢默认的字音转换,直接像 Wiki 一样写拼音也是可以的。

{ ruby 飞机|fēijī }{ ruby 场|chǎng } → {% ruby 飞机|fēijī %}{% ruby 场|chǎng %}

至于日语或者其他国家的语言之类的,自然也是不在话下。

{ ruby 超電磁砲|レールガン } → {% ruby 超電磁砲|レールガン %}

Happy hacking! 为了让更多的人用到它,我向 Hexo 的插件列表提交了 Pull Request,它现在已经在 Hexo 的插件列表里面了。

Hexo Plugin

网友评论

登录后评论
0/500
评论
潘家邦
+ 关注