jsw / commonmark-furigana-extension
League/commonmark extension for japanese furigana.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:commonmark-extension
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- league/commonmark: ^2.4
- noi/parsedown-rubytext: ^0.9.3
- phpunit/phpunit: ^11.0
Suggests
- jsw/commonmark-danraku-extension: League/commonmark extension for japanese danraku style.
This package is auto-updated.
Last update: 2024-12-22 19:38:37 UTC
README
Parsedownのルビ振り拡張機能をリスペクトして作った、ルビ振り機能を追加するleague/commonmark用Extension
使い方
すでにPHPとcomposerを使用できる環境にあることを前提とします。
インストール
- このリポジトリをクローンする
- なにがしかのシェルで
composer require jsw/commonmark-furigana-extension
と入力する- または、composer.jsonに以下の行を追加して
composer install
を実行
{ "require": { "jsw/commonmark-furigana-extension":"*" } }
- または、composer.jsonに以下の行を追加して
ルビの振り方のルール
- ルビを振りたい単語の前に「|」、単語の後ろに「《(ルビ文字)》」を入れる
- 例:
シャッター破壊で|Go Ahead《前進だ》!!
->シャッター破壊で<ruby>Go Ahead<rt>前進だ</rt></ruby>!!
-> シャッター破壊で!!
- 例:
- ただし、文字種の違いでルビを振るべき単語を特定できる場合は「|」を省略できる
- 例: すなわち、第四極《だいよんきょく》とは力なり
->すなわち、<ruby>第四極<rt>だいよんきょく</rt></ruby>とは力なり
-> すなわち、とは力なり
- 例: すなわち、第四極《だいよんきょく》とは力なり
- モノルビを表現する際には、そのつどルビを振る
- 例:
萌黄《もえぎ》白糸《しらいと》折鶴蘭《おりづるらん》
-><ruby>萌黄<rt>もえぎ</rt></ruby><ruby>白糸<rt>しらいと</rt></ruby><ruby>折鶴蘭<rt>おりづるらん</rt></ruby>
->
- 例:
設定
// 以下、デフォルトでの設定 $config = [ 'sapphire' => [ 'use_sutegana' => false, // trueにすると、ルビ文字のうち特定の小文字が大文字になる(ゅ→ゆ、ぁ→あ...etc) 'use_rp_tag' => false, // trueにすると、<rp>タグがルビにつく(<rp>(</rp><rt>ルビ</rt><rp>)</rp>) ] ];
VS Code用スニペット
スニペット設定としてmarkdown.jsonを、スニペット用キーバインドとしてkeybindings.jsonを添付しました。機能は以下の通りです。
- Markdownファイルの編集中にスニペット「aozora_ruby」を実行すると、カーソルを挟むようにルビ記号(《》)が挿入される
- ルビ文字を入力後にtabキーを押下することで、ルビ記号の直後にカーソルが移動するようになる
- 文字を選択している状態でスニペット「aozora_ruby_separate」を実行すると、選択した文字を親文字と認識し、親文字の直前に区切り文字(|)を、直後にルビ記号(《》)が挿入される
- カーソルの振る舞いは「aozora_ruby」に準ずる
- keybindings.jsonの設定を有効にすると、Ctrl+rでスニペット「aozora_ruby」を実行するようになる
- 条件は以下の3つ:
- 編集画面を選択中
- 編集しているファイルをMarkdownとVS Codeが認識している
- ファイルは読み取り専用ではない
- 条件は以下の3つ:
- 文字を選択した状態でCtrl+rを入力すると、「aozora_ruby_separate」が実行される
- 条件は「aozora_ruby」に準ずる
ライセンス
Apache License, Version 2.0