ナビゲーションを補助する為の、サイドメニューとナビバーを提供します。
又、ルビのオン/オフや、省略語の説明文の組み立てを行います。
これらの機能は JavaScript で実現していますので、お使いのブラウザの JavaScript を有効にしてください。
各アイコンとその機能は以下の通りです。
HTML ソース中の決められた書式で書かれた部分を、HTML の要素に変換します。
但し、<script>
要素、<ruby>
要素、<pre>
要素、<textarea>
要素、class="sic"
(「原文ママ」の意)の要素とその子要素は、処理対象にしません。
以下で説明する記述方法は、同一文書内でも、同一行内でも、混在可能です。
<ruby>
への対応は以下の通りです。
クロサワ式・コメント版と青空文庫では、処理対象とする語の境界を自動判別します。
文字種を「漢字グループ」、「平仮名グループ」、「片仮名グループ」、「その他グループ」、「区切り文字グループ」に分類して‥‥
‥‥というルールで文字列を分割します。
当サイトの独自形式で、全てのページをこの方式で書いています。
ルビや指示がコメントで隠されているので、未処理のテキストの可読性を損ないません。
ルビを指示するコメントの直前の単語を自動的に処理対象とします。
漢字と仮名が混ざった語や、区切り文字を含む語を対象にするには、<!--!-->
というコメントを語の前に置いて、境界を明示します。
例えば「阿Q」という語にルビを振る時、「阿Q<!--:あきゅう-->
」とすると「文字種の境界を語の区切りとする」というルールなので「Q」の部分にルビが付きます(阿Q)。
この場合には「<!--!-->阿Q<!--:あきゅう-->
」とします(阿Q)。
コメントの中は #PCDATA ではないので、本来なら文字参照は使えません。
というか、書いたままそこにあるだけなので、表示の為に手が加わる事はありません。
が、不安なく記号文字を書く為に、そして他のルビ記述の形式と合わせる為に、コメントの中の文字参照を独自に解決します。
文字実体参照と、数値文字参照は 16 進数か 10 進数で 0x10FFFF(1,114,111)までが書けます。
<ruby>
グループルビ漢字<!--読:かんじ-->
➜ 漢字<!--読:よみがな-->
は “読” を省略して <!--:よみがな-->
と表記可能です。
<ruby>
モノルビ|
(0x7C) で区切ってそれが同数だと、モノルビになります。
<!--!-->魑|魅|魍|魎<!--:ち|み|もう|りょう-->
➜ 魑|魅|魍|魎<!--!-->
を前置してください。
<ruby>
漢字<!--常:かんじ-->
➜ 漢字<span>
グレース<!--即:なべのすけ-->
➜ グレース<abbr>
i18n<!--略:internationalization-->
➜ i18n<abbr>
WWW<!--頭:world wide web-->
➜ WWW<acronym>
に変換していましたが、もう廃れた要素なので、<abbr>
に変換します。
当サイトの独自形式で、かつては全てのページをこの方式で書いていました。
指示が幅ゼロの空白なので、未処理のテキストの可読性を損なわないと思って作りました。
実際には、U+200B を □
(所謂“豆腐”) で表示してしまう端末があって、意図通りにはいきませんでした。
その上、未処理だと読みが括弧書きで表示されるので、一般的な括弧でも可読性は今一つ良くありませんでした。
この反省が、後にクロサワ式・コメント版を作る契機になりました。
​漢字(かんじ)
➜ 漢字(かんじ)青空文庫のコンテンツでの記述方法です。
|漢字《かんじ》
➜ |漢字《かんじ》|
(U+FF5C、1-01-35 包摂) 、ルビを囲む括弧は 《
(U+300A、1-01-52) と 》
(U+300B、1-01-53)です。|
がないと、クロサワ式・コメント版と同じルールで処理対象とする語の境界を自動判別します。
本家青空文庫のルールと判別ルールが同じかどうかは判りません。
pixiv のコンテンツでの記述方法です。
[[rb:漢字 > かんじ]]
➜ [[rb:漢字 > かんじ]]>
の前後の空白は 0 個以上(つまり、なくても、いくつあっても可)として実装しました。
Unicode の Interlinear annotation で漢字と読みを区切る方法です。
漢字かんじ
➜ 漢字かんじJIS X 4052「日本語文書の組版指定交換形式」に基づく方法です。
_^漢字(かんじ)^_
➜ _^漢字(かんじ)^__^魑(ち)魅(み)魍(もう)魎(りょう)^_
➜ _^魑(ち)魅(み)魍(もう)魎(りょう)^_JIS X 4081「日本語電子出版検索データ構造」に基づく方法です。
漢字かんじ
➜ 漢字かんじ἖ ἆ ἇ
となっている情報に多く行き着きます。
でも Unicode だとこの範囲は Greek Extended なので、その 16 ビットコードのままデータにするのは問題があります。