青空文庫の .txt を HTML に変換する最短手順
青空文庫 で配布されている .txt ファイルを HTML に変換したい、という用途向けの手順。Rust の知識は要らない。コマンド 1 行で済む。
1. CLI バイナリを取ってくる
aozora の Releases ページ から自分の OS 向けのアーカイブを落とす。
| OS | アーカイブ名 |
|---|---|
| Linux x86_64 | aozora-vX.Y.Z-x86_64-unknown-linux-gnu.tar.gz |
| macOS arm64 | aozora-vX.Y.Z-aarch64-apple-darwin.tar.gz |
| Windows x86_64 | aozora-vX.Y.Z-x86_64-pc-windows-msvc.zip |
SHA256SUMS も同梱されているので、必要なら shasum -a 256 -c SHA256SUMS で検証できる。
展開すると aozora (Windows なら aozora.exe) というバイナリが出てくる。これを PATH の通った場所に置くか、その場で実行する。
2. 変換する
青空文庫の .txt は Shift_JIS なので、-E sjis を付ける (これを付けないと UTF-8 として読まれて文字化けする)。
aozora render -E sjis kokoro.txt > kokoro.html
これで kokoro.html ができる。標準出力に流すので、ファイル名は自由に決められる。
ファイルの代わりに標準入力から流すこともできる。
cat kokoro.txt | aozora render -E sjis - > kokoro.html
事前に書式が正しいか確かめたい場合は check サブコマンドを使う (HTML は出力されず、警告だけが表示される)。
aozora check -E sjis kokoro.txt
3. 出てくる HTML
入力:
|青梅《おうめ》の山に、[#「ふと」に傍点]気が向いた。
出力 (抜粋):
<p>
<ruby>青梅<rt>おうめ</rt></ruby>の山に、<em class="bouten">ふと</em>気が向いた。
</p>
ルビは HTML5 の <ruby> <rt> 要素に、傍点は class="bouten" 付きの <em> に変換される。CSS でブラウザ表示を整える場合は .bouten { text-emphasis: filled; } のような指定で点を出せる。
縦中横や字下げコンテナ、外字も同様にセマンティックなマークアップに対応している。詳細は handbook の Notation 章 に各記法の入出力例が並んでいる。
4. データの取得元と注意
青空文庫の .txt ファイルは 作品リスト からダウンロードできる。各作品ページに「テキストファイル(ルビあり)」のリンクがあって、その zip を解凍すると .txt が出てくる。
- 公開されているのは 著作権切れ (パブリックドメイン) の作品のみ。再配布も自由
- 一部「公開中の作家による寄贈作品」は別ライセンスがあるので作品ページの注記を確認すること
- 青空文庫のテキストには「底本情報」のヘッダ・フッタが付いている。aozora はそれを通常の本文として処理するので、必要なら手で削るか、独自の前処理を挟む
関連プロジェクト
- P4suta/aozora-tools — 編集者向け: フォーマッタ、LSP サーバ、tree-sitter 文法、VS Code 拡張
- P4suta/afm — Markdown と青空文庫記法を混在させて書きたい場合のパーサ
aozora の handbook 全体: https://p4suta.github.io/aozora/