2020-08-01に投稿

各種小説投稿サイトのルビ記法をPHPで実現する

各種小説投稿サイトのルビ記法を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;
}

短歌にルビを振る目的で作ったため、かなりルビが反映されやすくなっています。
普通の文章にルビを振る場合は、括弧のパターンを減らしたり、括弧がそのまま残る置換を追加したり、括弧内が平仮名カタカナだけになるようにカスタムするといいでしょう。
気が向いたら更新します。

ツイッターでシェア
みんなに共有、忘れないようにメモ

ウラル

Splatoonの二次創作サイト「スプランプ」の管理人です。サーモンラン研究所やオクトチャット、フェス速報などを作りました。

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!
ボードとは?

関連記事

コメント