ルビ
<ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby>
蝙蝠(こうもり)
<ruby class="学年3 学年1"><rb>落下</rb><rt>らっか</rt></ruby>
ルビ猫の一撃(ネコパーンチ)
猫が蝙蝠(こうもり)を食べるの?
CSSセレクタ: ルビdiv.クラス>p
ルビのお気(き)に入(い)り
orお気に入(きにい)り
orお気に入り(おきにいり)
カタカナルビアリスはそう呟(ツブヤ)いた。
その
なんとかしてgit
とnpm
コマンドの
# 任意のディレクトリで、ダウンロード
git clone https://github.com/big-stream/rubygana.git
# インストール(依存ライブラリのダウンロード)
cd rubygana/
npm install --global
# もうrubyganaコマンドが使えるぞ
rubygana --help
MIT License
© 2018 ころん:すとりーむ
rubygana [オプション...] [ファイル]
echo '猫と蝙蝠' | rubygana
# 出力
猫(ねこ)と蝙蝠(こうもり)
ルビ
rubygana [-HKCy] [-g 学年] [-G 粒度]
[-s セレクタ] [-n 除外セレクタ] [-N 除外要素]
[-c [CSS]] [-T タイトル] [--ruby-size [フォント倍率]]
[--ruby [フレーズ:]単語:ルビ]
[--ruby-re 正規表現:単語:ルビ] [ファイル]
rubygana [-tKC] [-b 括弧] [-g 学年] [-G 粒度]
[--ruby [フレーズ:]単語:ルビ]
[--ruby-re 正規表現:単語:ルビ] [ファイル]
rubygana -a [-y] [クラス頭語] [-c [CSS]] [--switch]
[-s セレクタ] [-n 除外セレクタ] [ファイル]
rubygana -m [-c [CSS]] [-T タイトル] [-L 見出し] [ファイル]
rubygana -w [-c [CSS]] [-T タイトル] [-L 見出し] [ファイル]
その
-A, --sample-text サンプルテキスト出力
-B, --sample-html サンプルHTML出力
-M, --sample-md サンプルマークダウン出力
-d, --debug デバッグ用
-h, --help ヘルプ
--readme-md 詳細ヘルプ(このマークダウン)
--readme-html 詳細ヘルプ(HTML)
-v, --verbose デバッグ情報を増やす
-V, --version バージョン情報
-い, --依存 依存ライブラリ確認
-ら, --ライセンス ライセンス情報
-☺ , --感謝
--html, -H
HTML
# DOCTYPEやxml宣言がないのにHTML扱いしたい場合
echo '蝙蝠なの?' | rubygana -H --only-body
# 出力
<ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby>なの?
--text, -t
テキスト
# DOCTYPEやxml宣言あるのにテキスト扱いしたい場合
echo '<!DOCTYPE html><html><body>蝙蝠なの?</body></html>' | rubygana -t
# 出力
<!DOCTYPE html><html><body>蝙蝠(こうもり)なの?</body></html>
--add-class, -a ['クラス頭語']
デフォルト: 学年
# 「落」は3年生、「下」は1年生なので
echo '落下' | rubygana -H | rubygana -a --only-body
# 出力
<ruby class="学年3 学年1"><rb>落下</rb><rt>らっか</rt></ruby>
# 中学生以降は「学年7」、常用漢字以外の漢字は「学年8」
--md-html, -m
ルビ--headline
と--title
--text-html, -w
ルビ--headline
と--title
--sample-text, -A
不思議の国のアリス
「猫が蝙蝠を食べるの? 蝙蝠が猫を食うの?」
アリスは白ウサギの穴に落下しながら呟いた。すると突然…
--sample-html, -B
--sample-md, -M
--ruby '[フレーズ:]単語:ルビ'
ルビを--grade
など--ruby-comma
を
# 自動のルビが不味いときや、工夫したいときに使う。
echo '反復横飛びの無限反復' | rubygana -r '無限反復:反復:ループ'
# 出力
反復(はんぷく)横(よこ)飛(と)びの無限(むげん)反復(ループ)
# --rubyはいくつも使用できるが、同じフレーズ・単語は先のものが優先
echo 猫と蝙蝠 | rubygana -r '猫:cat' -r '猫:きゃっと' -r '蝙蝠:bat'
# 出力
猫(cat)と蝙蝠(bat)
# --htmlでも
echo '猫の一撃をくらった' | rubygana --html -r '猫の一撃:ネコパーンチ' --only-body
# 出力
<ruby><rb>猫の一撃</rb><rt>ネコパーンチ</rt></ruby>をくらった
--ruby-comma '[フレーズ,]単語,ルビ'
--ruby
の
echo 'ねえ、:コマンドって知ってる?' | rubygana --ruby-comma ':,コロン'
# 出力
ねえ、:(コロン)コマンドって知(し)ってる?
--ruby-re '正規表現:単語:ルビ'
--grade
など
echo '1行2行、一行は四行も空行にした' | rubygana --ruby-re '[0-9四]行:行:ぎょう' --ruby '空行:くうぎょう'
# 出力
1行(ぎょう)2行(ぎょう)、一行(いっこう)は四(よん)行(ぎょう)も空行(くうぎょう)にした
# マッチした表現に単語が複数回現れる場合、一つ目にのみルビが付く
echo '激怒激怒' | rubygana --ruby-re '(激怒)+:激怒:プンプン'
# 出力
激怒(プンプン)激怒(げきど)
# 先読み表現なども使える
echo '激怒プンプン丸が激怒' | rubygana --ruby-re '激怒(?=プンプン丸):激怒:げきおこ'
# 出力
激怒(げきおこ)プンプン丸(まる)が激怒(げきど)
--grade, -g '学年'
この
デフォルト: 0
# 常用漢字以外だけルビ化なら7
rubygana --sample-text | rubygana -g 7
# 出力
不思議の国のアリス
「猫が蝙蝠(こうもり)を食べるの? 蝙蝠(こうもり)が猫を食うの?」
アリスは白ウサギの穴に落下しながら呟(つぶや)いた。すると突然…
--granularity, -G '粒度'
かな
0=> お気(き)に入(い)り
1=> お気に入(きにい)り
2=> お気に入り(おきにいり)
デフォルト: 0
echo 'お気に入り' | rubygana --html -G 2 --only-body
# 出力
<ruby><rb>お気に入り</rb><rt>おきにいり</rt></ruby>
--brackets, -b '括弧'
デフォルト: ()
# 指定文字が奇数個なら、左側に一つ多く配分
echo '蝙蝠' | rubygana -b '(=)'
# 出力
蝙蝠(=こうもり)
--katakana, -K
カタカナのルビに(デフォルトはひらがな)
echo 'アリスはそう呟いた。すると突然…' | rubygana --katakana
=> アリスはそう呟(ツブヤ)いた。すると突然(トツゼン)…
セレクタと
--only-body, -y
body--comment
は
--selector, -s 'セレクタ'
この--not-selector
なら--ng-elements
では#id, p.クラス, ol>li:nth-child(1)
デフォルト: body
# ol要素直下の1番目li要素と、文クラスのp要素だけルビ化
rubygana --sample-html | rubygana -s 'ol>li:nth-child(1), p.文'
# 「要素>*」にすると、要素直下の漢字は対象にならない
echo '<p>猫と<span>蝙蝠</span></p>' | rubygana --html -s 'p>*' --only-body
# 出力
<p>猫と<span><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></span></p>
--not-selector, -n '除外セレクタ'
-s
そのものから-s
のデフォルトはbodyなので、-s
とli.クラス
デフォルト(-h
のruby,script,style,code,pre,samp,blockquote
デフォルト(-a
の
# p要素をルビ化したいが、そのうち無視クラスを除外したいとき
echo '<p class="無視">猫</p><p>蝙蝠</p>' | rubygana --html -s 'p' -n '.無視' --only-body
# 出力
<p class="無視">猫</p><p><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></p>
# 該当した`-s`そのもの(と子孫)を除外できるが、該当しなかった`-s`の子孫は除外できない
echo '<div><p>猫</p></div><p>蝙蝠</p>' | rubygana --html -s 'body>*' -n 'p' --only-body
# 出力
<div><p><ruby><rb>猫</rb><rt>ねこ</rt></ruby></p></div><p>蝙蝠</p>
--ng-elements, -N '除外要素'
-s
の|
-s
そのものから--not-selector
デフォルト: ruby|script|style|code|pre|samp|blockquote
# 絶対に除外したい要素で使う。(最低限scriptとstyleは除外推奨)
echo '<p>猫と<a>蝙蝠</a></p>' | rubygana --html -N 'a' --only-body
# 出力
<p><ruby><rb>猫</rb><rt>ねこ</rt></ruby>と<a>蝙蝠</a></p>
--css, -c ['CSS']
head
--html
のとき、ルビのフォントサイズ(ruby>rp,ruby>rt{font-size:0.5em;}
--add-class
のとき、ruby[class$="8"]>rt{color:DarkRed;}
--text-html
と--md-html
のとき、--ruby-size [フォント倍率]
head
ruby>rp,ruby>rt{font-size:倍率em;}
--use-rp
rp
echo 猫なの? | rubygana -H --use-rp --only-body
# 出力
<ruby><rb>猫</rb><rp>(</rp><rt>ねこ</rt><rp>)</rp></ruby>なの?
--title, -T 'タイトル'
title
--headline, -L '見出し'
h1--text-html
と--md-html
で
--switch
ページトップにルビの
--comment, -C
rubyganaコマンド
--html
のとき: bodydisplay:none
のため、ソースからなら
<!-- この文書のルビ振りは下記コマンド(rubygana VERSION)を用いました。 -->
<pre style="display:none;"><code>
ここに実際に実行したコマンドオプション・引数が入る
</code></pre>
--text
のとき:
# この文書のルビ振りは下記コマンド(rubygana VERSION)を用いました。
# ここに実際に実行したコマンドオプション・引数が入る
--debug, -d
-dd
でオプション
--verbose, -v
# ダウンロードし、ルビ化し、firefoxで開く
page='ja.wikipedia.org/wiki/不思議の国のアリス'; wget --page-requisites --convert-links "https://$page" && rubygana $page > $page.ruby.html; firefox $page.ruby.html &
# 入力の文字コードはUTF-8のみ受付:
# 違うならiconvコマンドなどで変換してから
cat shift-jis.txt | iconv -f 'shift-jis' -t 'utf8' | rubygana
# (標準出力の文字コードは端末の設定で変更)
# サンプルテキストを出力し、それをHTML化し、次にh1だけカタカナでルビ振りし、そしてp要素を2年生超でルビ振りし、
# そして学年クラス名を付加して中学生以上常用漢字ルビは青色で常用漢字以外ルビは赤色スタイルにして、
# それをalice.htmlとして保存し、それをFirefoxで開く。
rubygana -A | rubygana -w | rubygana -HKs 'h1' | rubygana -s 'p' -g 2 | rubygana -ac 'ruby[class$="7"]>rt{color:blue;}ruby[class$="8"]>rt{color:red;}' > alice.html; firefox alice.html &