jsw/commonmark-furigana-extension

League/commonmark extension for japanese furigana.

1.0.2 2024-03-22 17:55 UTC

This package is auto-updated.

Last update: 2024-04-22 18:13:50 UTC


README

Parsedownのルビ振り拡張機能をリスペクトして作った、ルビ振り機能を追加するleague/commonmark用Extension

使い方

すでにPHPcomposerを使用できる環境にあることを前提とします。

インストール

  1. このリポジトリをクローンする
  2. なにがしかのシェルでcomposer require jsw/commonmark-furigana-extensionと入力する
    1. または、composer.jsonに以下の行を追加してcomposer installを実行
    {
        "require": {
            "jsw/commonmark-furigana-extension":"*"
        }
    }
    

ルビの振り方のルール

  1. ルビを振りたい単語の前に「|」、単語の後ろに「《(ルビ文字)》」を入れる
    • 例:シャッター破壊で|Go Ahead《前進だ》!!
      -> シャッター破壊で<ruby>Go Ahead<rt>前進だ</rt></ruby>!!
      -> シャッター破壊でGo Ahead前進だ!!
  2. ただし、文字種の違いでルビを振るべき単語を特定できる場合は「|」を省略できる
    • 例: すなわち、第四極《だいよんきょく》とは力なり
      -> すなわち、<ruby>第四極<rt>だいよんきょく</rt></ruby>とは力なり
      -> すなわち、第四極だいよんきょくとは力なり
  3. モノルビを表現する際には、そのつどルビを振る
    • 例:萌黄《もえぎ》白糸《しらいと》折鶴蘭《おりづるらん》
      -> <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が認識している
      • ファイルは読み取り専用ではない
  • 文字を選択した状態でCtrl+rを入力すると、「aozora_ruby_separate」が実行される
    • 条件は「aozora_ruby」に準ずる

ライセンス

Apache License, Version 2.0