lnarita / yohna

A helper for saner ruby tags

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Yohna

Yohna defines and parses new markup syntax for ruby tags, because writing <ruby> without getting lost is quite a pain.
Currently being used to add furigana to Japanese creative writing, but it should be language agnostic :)

ps: this was done over a holiday night because of boredom and because I couldn't find a markdown parser that supported phonetic scripts. That being said, do not expect much

Examples

Input:

<blockquote>
<p>{弟達}(おとうと、たち)はいつも{機敏}(ちょこまか)に動いてた</p>
<p>腹は減るけど じっとしてたら 凍っちまうから</p>
<p>運命の{贈り物}(おく、り、もの) 不幸を詰めた {Матрёшка}(マトリョーシカ)</p>
<p>開けても 開けても 悲しみばかり</p>
<p>「{хорошо}(ハラショー)!{хорошо}(ハラショー)!ボルシチには黒コショー!</p>
<p>さぁ、2番はますます涙ちょちょぎれンスキー」 </p>
<p>白く煌めく {Волга}(ヴォルガ)  風を切り裂いて </p>
<p>走れ {Тройка}(トロイカ)よ 家は遠いか 空駈けろ </p>
<p>妹達もいつも 腹を空かせてた</p>
<p><em>「お兄ちゃん、{お腹}(おなか){空}(す)いたよぉ…」</em></p>
<p>頑張れ {Катюша}(カチューシャ)</p>
<p><em>「がーんばれー!」</em></p>
<p>銀のお注射 きっと{快}(よ)くなるさ</p>
<p><em>「痛ぇー」</em></p>
<cite>『人生は入れ子人形』Sound Horizon</cite>
</blockquote>

Output:

(おとうと)(たち)はいつも機敏(ちょこまか)に動いてた

腹は減るけど じっとしてたら 凍っちまうから

運命の(おく)(もの) 不幸を詰めた Матрёшка(マトリョーシカ)

開けても 開けても 悲しみばかり

хорошо(ハラショー)хорошо(ハラショー)!ボルシチには黒コショー!

さぁ、2番はますます涙ちょちょぎれンスキー」

白く煌めく Волга(ヴォルガ) 風を切り裂いて

走れ Тройка(トロイカ)よ 家は遠いか 空駈けろ

妹達もいつも 腹を空かせてた

「お兄ちゃん、お(なか)()いたよぉ…」

頑張れ К()а()т()ю()ш()а()

「がーんばれー!」

銀のお注射 きっと()くなるさ

「痛ぇー」

『人生は入れ子人形』Sound Horizon

Usage

Browser

yohna.init({
    /**
     * start node for the TreeWalker
     * @type {node}
     */
    root: document.body,
    /**
     * node types to exclude from TreeWalker search
     * @type {Array}
     */
    excludeFromSearch: ['SCRIPT', 'STYLE', 'CODE', 'PRE'],
    /**
     * delimiters to define start of a word
     * @type {Array}
     */
    wordOpeningDelimiters: ['{', '{'],
    /**
     * delimiters to define end of a word
     * @type {Array}
     */
    wordClosingDelimiters: ['}', '}'],
    /**
     * delimiters to define start of a reading
     * @type {Array}
     */
    readingOpeningDelimiters: ['(', '(', '\u3010'],
    /**
     * delimiters to define end of a reading
     * @type {Array}
     */
    readingClosingDelimiters: [')', ')', '\u3011'],
    /**
     * delimiters to define reading units.
     * eg.: {僕達}(ぼく、たち)
     * @type {Array}
     */
    readingDelimiters: ['.', '、', '・']
}).parseDocument();

About

A helper for saner ruby tags

License:MIT License


Languages

Language:JavaScript 100.0%