第二章画像とルビを制する者、小説を制す!
第1話……ノベルアップ+さんからアメブロさんへの転載
正確には覚えていないが、大体一年くらい前かな?ノベルアップ+さんに投稿している「海と陸の彼方へ」という小説を一部アメブロへ転載することを思いついた。
画像の挿入は覚悟していたのだが、別のことで
ノベルアップ+さんでは、青空文庫形式もサポートしており、例えば、
https://kakuyomu.jp/users/happy-isl/news/16818622173406862943]
と打てば良い。
ノベルアップ+さんやカクヨムさんでは
https://kakuyomu.jp/users/happy-isl/news/16818622173406862943
が使えるが、アメブロではHTML形式の `<ruby>漢字<rt>ルビ</rt></ruby>` が必要になる。
結局、1話転載するのに、1時間も費やしてしまうことになった。
半年間、毎日続けたが、とうとう挫折した。
今回の記事では、青空文庫形式で書かれた原稿を、アメブロ用に変換して投稿する方法を紹介する。
> 💡 対象読者:
> ノベルアップ+やカクヨムで青空文庫形式に慣れている投稿者。
> アメブロでルビ付き小説を掲載したいが、HTML形式の記述が分からず苦戦している人。
■問題点:アメブロではルビの記法が違う
多くの小説投稿サイト(ノベルアップ+・カクヨム・エブリスタ等)では、青空文庫形式によるルビが使われている。
https://kakuyomu.jp/users/happy-isl/news/16818622173406862943
一方、アメブロではこのような簡易ルビ記法は使えず、HTMLタグで書く必要がある。
例:
HTML編集画面上で
<ruby>柴風<rt>チャイ・フェン</rt></ruby>
と書く。
この違いが、アメブロへの転載作業で最も面倒なポイントとなる。
■解決策:正規表現で一括変換する
アメブロには「HTML編集モード」があり、そこにHTMLタグ形式のルビを直接書き込むことができる。
そこで、原稿を一括で変換するための正規表現+置換パターンを紹介する。
🔧 方法
手順①……正規表現の使えるエディターで元原稿を書く。青空文庫形式のルビを振るのは当然のこととします。
手順②……元原稿をアメブロの通常編集画面に貼り付ける。
手順③……アメブロのHTML編集画面に切り替える。コピペして、エディターに貼り付ける。
手順④……エディターに貼られたHTML文書を正規表現により、一括置換する。
一括置換の方法は、以下の通り。
https://kakuyomu.jp/users/happy-isl/news/16818622173407090474
置換表現
<ruby>$1<rt>$2</rt></ruby>
手順⑤……一括置換されたHTML文書をアメブロのHTML編集画面に貼り付け、通常画面に戻す。あら、見事。ふりがながちゃんと付いています。
■手順まとめ(簡略版)
1. ノベルアップ+原稿をコピーする
2. Visual Studio Codeやwzエディタなどで上記の正規表現を使って変換
3. アメブロの「HTML編集モード」で貼り付ける
■最後に
アメブロは画像の自由度やカスタマイズ性が高く、ルビのHTML対応さえ乗り越えれば、小説投稿にも十分活用できる。
今後も、「複数サイト間のルビ変換と投稿ノウハウ」について実践ベースで紹介していく予定だ。
★詳細な説明
1. 正規表現パターン
https://kakuyomu.jp/users/happy-isl/news/16818622173407090474
内容説明「順を追って」
`|`: 直前の縦棒記号「`|`」を検出。
`([^\x00-\x7F >]+?)`: 漢字1文字以上をキャプチャ(これがルビを振られる漢字部分)。
少し、大雑把すぎるので、詳しく解説。
******
✅ ([^\x00-\x7F >]+?) を分解してみましょう
[...] → 文字クラス
「この中に含まれるどれか1文字にマッチする」ことを意味します。
^(キャレット) → 否定
文字クラスの最初に置かれると、「これ以外の文字にマッチする」という意味になります。
\x00-\x7F → ASCIIコード範囲
\x00~\x7F は、ASCII(英数字・半角記号)を表します。
つまり「ASCII文字以外」を意味します(例:日本語・漢字・ひらがな・カタカナなど)。
> → これも除外対象にしている
この文字クラス [^\x00-\x7F >] の中では、
「ASCII文字以外」であり、
「かつ '>' でもない文字」
にマッチする、という意味になります。
✅ まとめると
[^\x00-\x7F >] は
→ ASCII以外かつ「>」でもない文字にマッチする。
つまりこの部分は、
「日本語などの全角文字列(ただし '>' を含まない)」
を1文字ずつ対象にしているということです。
✅ なぜわざわざ「>」を除外しているのか?
それは、Pixivルビ記法などにおいて、
[[rb:柴栄 > チャイ・ロン]]
の中の
柴栄(元の文字列)と
チャイ・ロン(ルビ)
を分けるために、
「> 記号は絶対に"名前"の中には含まない」と前提を置いているからです。
だから '>' を除外しておくことで、名前だけを正しく取り出せるようにしているのです。
✅ 結論
> は、「ここで区切りが来る」ことを見越して、日本語の文字列からあらかじめ除外している。
つまり、「名前の中に '>' はありえない」と想定している、という意味です。
******
`《`: 全角の開き山括弧を検出。
`([^》]*)`: 閉じ山括弧「`》`」以外の文字を0回以上キャプチャ(これがルビ部分)。
`》`: 全角の閉じ山括弧を検出。
2. 置換パターン
`<ruby>$1<rt>$2</rt></ruby>`
キャプチャした漢字部分を `$1` に、ルビ部分を `$2` に対応させて、アメブロのルビ形式に整形します。
アメブロに貼り付ければ、出来上がりです。以下は、目を通していただくと理解が深まるレジメです。
******
https://kakuyomu.jp/users/happy-isl/news/16818622172083801635
前提知識①
https://kakuyomu.jp/users/happy-isl/news/16818622172098706658
前提知識②
https://kakuyomu.jp/users/happy-isl/news/16818622172106506628
前提知識③
https://kakuyomu.jp/users/happy-isl/news/16818622172168022667
前提知識④
******
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます