From 3e50fde30292f145abd8c63bffa3c6b68a1c6fb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=93=E3=82=8D=E3=82=93=3A=E3=81=99=E3=81=A8=E3=82=8A?=
=?UTF-8?q?=E3=83=BC=E3=82=80?=
<37651140+big-stream@users.noreply.github.com>
Date: Thu, 25 Jun 2020 20:51:12 +0900
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0:=20v0.8.1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 255 +++++++++++++++++++++++++-------------------
docs/index.html | 156 ++++++++++++++++-----------
lib/help.js | 2 +-
package.json | 4 +-
scripts/minitest.sh | 3 +-
5 files changed, 244 insertions(+), 176 deletions(-)
diff --git a/README.md b/README.md
index 9f157ff..880ee49 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
ルビ族以外もどうぞ!
-## 特徴(rubygana 0.7.3)
+## 特徴(rubygana 0.8.1)
1. ##### HTMLのルビ化
`
猫と蝙蝠
' | rubygana --html -s 'p>*' --only-body +# 「要素>*」にすると、要素直下の漢字は対象にならない +echo '猫と蝙蝠
' | rubygana --html -s 'p>*' --only-body - # 出力 -猫と
猫と
猫
蝙蝠
' | rubygana --html -s 'p' -n '.無視' --only-body +``` +# p要素をルビ化したいが、そのうち無視クラスを除外したいとき +echo '猫
蝙蝠
' | rubygana --html -s 'p' -n '.無視' --only-body - # 出力 -猫
猫
猫
蝙蝠
' | rubygana --html -s 'body>*' -n 'p' --only-body +# 該当した`-s`そのもの(と子孫)を除外できるが、該当しなかった`-s`の子孫は除外できない +echo '猫
蝙蝠
' | rubygana --html -s 'body>*' -n 'p' --only-body - # 出力 -蝙蝠
+# 出力 +蝙蝠
+``` #### `--ng-elements, -N '除外要素'` @@ -384,11 +415,13 @@ body要素の中身だけ出力(bodyタグ含まず)(`--comment`は出力)。以 `-s`の子孫から除外する要素を`|`区切りで。`-s`そのものから除外するには、`--not-selector` デフォルト: `ruby|script|style|code|pre|samp|blockquote` - # 絶対に除外したい要素で使う。(最低限scriptとstyleは除外推奨) - echo '猫と蝙蝠
' | rubygana --html -N 'a' --only-body +``` +# 絶対に除外したい要素で使う。(最低限scriptとstyleは除外推奨) +echo '猫と蝙蝠
' | rubygana --html -N 'a' --only-body - # 出力 -ルビ
<ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby>
<ruby class="学年3 学年1"><rb>落下</rb><rt>らっか</rt></ruby>
<ruby class="学年3 学年1"><rb>落下</rb><rt>らっか</rt></ruby>
MIT License
© 2018 ころん:すとりーむ
rubygana [オプション...] [ファイル]
echo '猫と蝙蝠' | rubygana
+rubygana [オプション...] [ファイル]
+一 つのファイル指定 か標準 入力 が必要 で、結果 はすべて標準 出力 。
+echo '猫と蝙蝠' | rubygana
# 出力
-猫(ねこ)と蝙蝠(こうもり)
ルビ化 の際 、kuromoji.jsのビルドに1、2秒 かかります。
+猫(ねこ)と蝙蝠(こうもり)
+ルビ
rubygana [-tKC] [-b 括弧] [-g 学年] [-G 粒度]
[--ruby [フレーズ:]単語:ルビ]
- [--ruby-re 正規表現:単語:ルビ] [ファイル]
rubygana -a [-y] [クラス頭語] [-c [CSS]] [--switch]
- [-s セレクタ] [-n 除外セレクタ] [ファイル]
rubygana -m [-c [CSS]] [-T タイトル] [-L 見出し] [ファイル]
rubygana -m [-c [CSS]] [-T タイトル] [-L 見出し] [ファイル]
+
rubygana -w [-c [CSS]] [-T タイトル] [-L 見出し] [ファイル]
rubygana -w [-c [CSS]] [-T タイトル] [-L 見出し] [ファイル]
+
その
-A, --sample-text サンプルテキスト出力
@@ -159,29 +167,33 @@ オプション
-V, --version バージョン情報
-い, --依存 依存ライブラリ確認
-ら, --ライセンス ライセンス情報
--☺ , --感謝
--html, -H
HTML
# DOCTYPEやxml宣言がないのにHTML扱いしたい場合
-echo '蝙蝠なの?' | rubygana -H --only-body
+echo '蝙蝠なの?' | rubygana -H --only-body
# 出力
-<ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby>なの?
--text, -t
--text, -t
テキスト
# DOCTYPEやxml宣言あるのにテキスト扱いしたい場合
-echo '蝙蝠なの?' | rubygana -t
+echo '<!DOCTYPE html><html><body>蝙蝠なの?</body></html>' | rubygana -t
# 出力
-蝙蝠(こうもり)なの?
--add-class, -a ['クラス頭語']
--add-class, -a ['クラス頭語']
デフォルト: 学年
# 「落」は3年生、「下」は1年生なので
-echo '落下' | rubygana -H | rubygana -a --only-body
+echo '落下' | rubygana -H | rubygana -a --only-body
# 出力
-<ruby class="学年3 学年1"><rb>落下</rb><rt>らっか</rt></ruby>
+<ruby class="学年3 学年1"><rb>落下</rb><rt>らっか</rt></ruby>
-# <ruby><rb>中学生</rb><rt>ちゅうがくせい</rt></ruby><ruby><rb>以降</rb><rt>いこう</rt></ruby>は「<ruby><rb>学年</rb><rt>がくねん</rt></ruby>7」、<ruby><rb>常用漢字</rb><rt>じょうようかんじ</rt></ruby><ruby><rb>以外</rb><rt>いがい</rt></ruby>の<ruby><rb>漢字</rb><rt>かんじ</rt></ruby>は「<ruby><rb>学年</rb><rt>がくねん</rt></ruby>8」
--md-html, -m
--md-html, -m
ルビ--headline
と--title
--text-html, -w
ルビ--headline
と--title
--sample-text, -A
不思議の国のアリス
「猫が蝙蝠を食べるの? 蝙蝠が猫を食うの?」
-アリスは白ウサギの穴に落下しながら呟いた。すると突然…
--sample-html, -B
--sample-html, -B
--sample-md, -M
--ruby '[フレーズ:]単語:ルビ'
--ruby '[フレーズ:]単語:ルビ'
ルビを--grade
など--ruby-comma
を
# 自動のルビが不味いときや、工夫したいときに使う。
-echo '反復横飛びの無限反復' | rubygana -r '無限反復:反復:ループ'
+echo '反復横飛びの無限反復' | rubygana -r '無限反復:反復:ループ'
# 出力
反復(はんぷく)横(よこ)飛(と)びの無限(むげん)反復(ループ)
# --rubyはいくつも使用できるが、同じフレーズ・単語は先のものが優先
-echo 猫と蝙蝠 | rubygana -r '猫:cat' -r '猫:きゃっと' -r '蝙蝠:bat'
+echo 猫と蝙蝠 | rubygana -r '猫:cat' -r '猫:きゃっと' -r '蝙蝠:bat'
# 出力
猫(cat)と蝙蝠(bat)
# --htmlでも
-echo '猫の一撃をくらった' | rubygana --html -r '猫の一撃:ネコパーンチ' --only-body
+echo '猫の一撃をくらった' | rubygana --html -r '猫の一撃:ネコパーンチ' --only-body
# 出力
-<ruby><rb>猫の一撃</rb><rt>ネコパーンチ</rt></ruby>をくらった
--ruby-comma '[フレーズ,]単語,ルビ'
--ruby-comma '[フレーズ,]単語,ルビ'
--ruby
の
echo 'ねえ、:コマンドって知ってる?' | rubygana --ruby-comma ':,コロン'
+echo 'ねえ、:コマンドって知ってる?' | rubygana --ruby-comma ':,コロン'
# 出力
-ねえ、:(コロン)コマンドって知(し)ってる?
--ruby-re '正規表現:単語:ルビ'
+ねえ、:(コロン)コマンドって知(し)ってる?
+--ruby-re '正規表現:単語:ルビ'
--grade
など
echo '1行2行、一行は四行も空行にした' | rubygana --ruby-re '[0-9四]行:行:ぎょう' --ruby '空行:くうぎょう'
+echo '1行2行、一行は四行も空行にした' | rubygana --ruby-re '[0-9四]行:行:ぎょう' --ruby '空行:くうぎょう'
# 出力
1行(ぎょう)2行(ぎょう)、一行(いっこう)は四(よん)行(ぎょう)も空行(くうぎょう)にした
# マッチした表現に単語が複数回現れる場合、一つ目にのみルビが付く
-echo '激怒激怒' | rubygana --ruby-re '(激怒)+:激怒:プンプン'
+echo '激怒激怒' | rubygana --ruby-re '(激怒)+:激怒:プンプン'
# 出力
激怒(プンプン)激怒(げきど)
# 先読み表現なども使える
-echo '激怒プンプン丸が激怒' | rubygana --ruby-re '激怒(?=プンプン丸):激怒:げきおこ'
+echo '激怒プンプン丸が激怒' | rubygana --ruby-re '激怒(?=プンプン丸):激怒:げきおこ'
# 出力
-激怒(げきおこ)プンプン丸(まる)が激怒(げきど)
--grade, -g '学年'
+激怒(げきおこ)プンプン丸(まる)が激怒(げきど)
+--grade, -g '学年'
この
デフォルト: 0
# 常用漢字以外だけルビ化なら7
rubygana --sample-text | rubygana -g 7
@@ -248,56 +264,63 @@ --ruby '[フレーズ:]単語:ル
# 出力
不思議の国のアリス
「猫が蝙蝠(こうもり)を食べるの? 蝙蝠(こうもり)が猫を食うの?」
-アリスは白ウサギの穴に落下しながら呟(つぶや)いた。すると突然…
--granularity, -G '粒度'
かな
0=> お気(き)に入(い)り
1=> お気に入(きにい)り
2=> お気に入り(おきにいり)
デフォルト: 0
echo 'お気に入り' | rubygana --html -G 2 --only-body
+アリスは白ウサギの穴に落下しながら呟(つぶや)いた。すると突然…
+--granularity, -G '粒度'
かな
0=> お気(き)に入(い)り
1=> お気に入(きにい)り
2=> お気に入り(おきにいり)
デフォルト: 0
echo 'お気に入り' | rubygana --html -G 2 --only-body
# 出力
-<ruby><rb>お気に入り</rb><rt>おきにいり</rt></ruby>
--brackets, -b '括弧'
デフォルト: ()
--brackets, -b '括弧'
デフォルト: ()
# 指定文字が奇数個なら、左側に一つ多く配分
-echo '蝙蝠' | rubygana -b '(=)'
+echo '蝙蝠' | rubygana -b '(=)'
# 出力
-蝙蝠(=こうもり)
--katakana, -K
--katakana, -K
カタカナのルビに(デフォルトはひらがな)
-echo 'アリスはそう呟いた。すると突然…' | rubygana --katakana
-=> アリスはそう呟(ツブヤ)いた。すると突然(トツゼン)…
echo 'アリスはそう呟いた。すると突然…' | rubygana --katakana
+=> アリスはそう呟(ツブヤ)いた。すると突然(トツゼン)…
+セレクタと
--only-body, -y
body--comment
は
--selector, -s 'セレクタ'
--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.文'
+rubygana --sample-html | rubygana -s 'ol>li:nth-child(1), p.文'
# 「要素>*」にすると、要素直下の漢字は対象にならない
-echo '<p>猫と<span>蝙蝠</span></p>' | rubygana --html -s 'p>*' --only-body
+echo '<p>猫と<span>蝙蝠</span></p>' | rubygana --html -s 'p>*' --only-body
# 出力
-<p>猫と<span><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></span></p>
--not-selector, -n '除外セレクタ'
--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
+echo '<p class="無視">猫</p><p>蝙蝠</p>' | rubygana --html -s 'p' -n '.無視' --only-body
# 出力
-<p class="無視">猫</p><p><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></p>
+<p class="無視">猫</p><p><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></p>
-# <ruby><rb>該当</rb><rt>がいとう</rt></ruby>した`-s`そのもの(と<ruby><rb>子孫</rb><rt>しそん</rt></ruby>)を<ruby><rb>除外</rb><rt>じょがい</rt></ruby>できるが、<ruby><rb>該当</rb><rt>がいとう</rt></ruby>しなかった`-s`の<ruby><rb>子孫</rb><rt>しそん</rt></ruby>は<ruby><rb>除外</rb><rt>じょがい</rt></ruby>できない
-echo '<div><p><ruby><rb>猫</rb><rt>ねこ</rt></ruby></p></div><p><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></p>' | rubygana --html -s 'body>*' -n 'p' --only-body
+# 該当した`-s`そのもの(と子孫)を除外できるが、該当しなかった`-s`の子孫は除外できない
+echo '<div><p>猫</p></div><p>蝙蝠</p>' | rubygana --html -s 'body>*' -n 'p' --only-body
-# <ruby><rb>出力</rb><rt>しゅつりょく</rt></ruby>
-<div><p><ruby><rb>猫</rb><rt>ねこ</rt></ruby></p></div><p><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></p>
--ng-elements, -N '除外要素'
--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
+echo '<p>猫と<a>蝙蝠</a></p>' | rubygana --html -N 'a' --only-body
# 出力
-<p><ruby><rb>猫</rb><rt>ねこ</rt></ruby>と<a><ruby><rb>蝙蝠</rb><rt>こうもり</rt></ruby></a></p>
--css, -c ['CSS']
--css, -c ['CSS']
head
--html
のとき、ルビのフォントサイズ(--selector, -s 'セレクタ'
--add-class
のとき、ruby[class$="8"]>rt{color:DarkRed;}
ruby[class$="8"]>rt{color:DarkRed;}
--text-html
と--md-html
のとき、--use-rp
echo 猫なの? | rubygana -H --use-rp --only-body
# 出力
-<ruby><rb>猫</rb><rp>(</rp><rt>ねこ</rt><rp>)</rp></ruby>なの?
--title, -T 'タイトル'
--title, -T 'タイトル'
title
--headline, -L '見出し'
--headline, -L '見出し'
h1--text-html
と--md-html
で
--switch
ページトップにルビの
--comment, -C
rubyganaコマンド
--html
のとき: bodydisplay:none
のため、ソースからなら
<!-- この文書のルビ振りは下記コマンド(rubygana VERSION)を用いました。 -->
-<pre style="display:none;"><code>
+<pre style="display:none;"><code>
ここに実際に実行したコマンドオプション・引数が入る
-</code></pre>
--text
のとき:
--text
のとき:
# この文書のルビ振りは下記コマンド(rubygana VERSION)を用いました。
-# ここに実際に実行したコマンドオプション・引数が入る
--debug, -d
--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 &
+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
+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 &