「各種小説投稿サイトのルビ記法をJavaScriptで実現する」
こちらの記事を参考にPHPで関数として作ってみました。
function ruby(string $str) {
$str = preg_replace('/[||](.+?)(?|((.+?))|\((.+?)\)|《(.+?)》)/u', '<ruby>$1<rt>$2</rt></ruby>', $str);
$str = preg_replace('/(\p{Han}+)(?|((.+?))|\((.+?)\)|《(.+?)》)/u', '<ruby>$1<rt>$2</rt></ruby>', $str);
return $str;
}
短歌にルビを振る目的で作ったため、かなりルビが反映されやすくなっています。
普通の文章にルビを振る場合は、括弧のパターンを減らしたり、括弧がそのまま残る置換を追加したり、括弧内が平仮名カタカナだけになるようにカスタムするといいでしょう。
気が向いたら更新します。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント