! 詳しくはWikiを参照してください !
以下の機能を持ったbashスクリプトです。
- 一定程度規則(マークアップ)に則って書かれたテキスト文書(txt)に対しHTMLタグを付与してhtmlファイルにする。
- これによって付与したhtmlタグを除去・変換して、出来る限り元のマークアップ文書(txt)に戻す。
特に、小説のような形式で書かれた日本語文章に特化します。
| 効果 | 対象文字、状況 | htmlタグとClass(終了タグ省略) | 概要/デフォ設定 |
|---|---|---|---|
| 改行 | 改行コード | <br class="ltlbg_br"> |
特殊style無し |
| 空行 | 行頭改行コード | <br class="ltlbg_blankline"> |
特殊style無し |
| ダーシ | ―or―― |
<span class="ltlbg_wSize"> |
1字を長さ倍 |
| 段落 | 行頭全角空白 | <p class="ltlbg_p"> |
先頭空白除去、空行挿入 |
| 踊字 | /\or〱 |
<span class="ltlbg_odori1"> |
1字目。横書時回転 |
<span class="ltlbg_odori2"> |
2字目。横書時回転 | ||
| 「会話」 | 行頭「から」 |
<span class="ltlbg_talk"> |
ぶら下がりIndent |
| (思考) | 行頭(から) |
<span class="ltlbg_think"> |
ぶら下がりIndent |
| 〝強調〟 | 行頭〝から〟 |
<span class="ltlbg_wqote"> |
ぶら下がりIndent |
| 会話等の疑似段落 | 連続する括弧類の行 | <p class="ltlbg_p_brctGrp"> |
擬似的な段落 |
| 右大不等号 | < |
< |
クラス化なし |
| 左大不等号 | > |
> |
クラス化なし |
| アンパサンド | & |
& |
クラス化なし |
| ダブルクォート | " |
" |
クラス化なし |
| シングルクォート | ' |
' |
クラス化なし |
| コロン | :or: |
<hr class="ltlbg_colon"> |
縦書きのみ。全角化 |
| セミコロン | ;or; |
<hr class="ltlbg_semicolon"> |
縦書きのみ。全角化、回転 |
| 線 | --- |
<hr class="ltlbg_hr"> |
特殊style無し |
| 全角空白 | 行頭以外の全角空白 | <span class="ltlbg_wSP"> |
全角空白。1em幅確保 |
| 半角空白 | 半角空白 | <span class="ltlbg_sSP"> |
半角空白。0.5em幅確保 |
| 後ろ空白 | !や? | <span class="ltlbg_wSP"> |
記号の直後に強制全角空白 |
| 半角英数記号 | !や?、英数の重なり | <span class="ltlbg_tcyA"> |
2字のみ。自動半角縦中横化 |
| エロ濁点 | ゛ |
<span class="ltlbg_dakten"> |
縦書時のみ前字の右上に移動 |
| ルビ | {母字|ルビ}or |
<ruby class="ltlbg_ruby" data-ruby_even="ルビ"> |
母字数=ルビ字数はモノルビ風 |
|母字《ルビ》 |
<ruby class="ltlbg_ruby" data-ruby_long="ルビ"> |
長いルビは始点合わせ | |
<ruby class="ltlbg_ruby" data-ruby_short="ルビ"> |
短いルビは中央寄せ | ||
| 傍点 | 《《傍点》》 |
<ruby class="ltlbg_emphasis" data-emphasis="﹅"> |
ルビ化する。黒ゴマ |
| 太字 | **太字** |
<span class="ltlbg_bold"> |
font-weight:bold |
| 縦中横 | ^XX^ |
<span class="ltlbg_tcyM"> |
1〜3字のみ |
| 章区切り | [chapter:章idx] |
<section class="ltlbg_section" id="章idx"> |
章idxは必須でない |
| 章タイトル | 行頭§or◆or■ |
<h2 class="ltlbg_sectionname"> |
2字幅行に大Font |
| 改ページ | [newpage] |
<div class="ltlbg_newpage"> |
breakAfter:Allの空div |
| 回転対応 | [^字^] |
<span class="ltlbg_rotate"> |
全半角1字。1em幅確保、回転 |
| 字幅対応 | [-字-] |
<span class="ltlbg_wdfix"> |
全半角1字。1em幅確保 |
| 強制合字 | [l[字]r] |
<span class="ltlbg_forceGouji"> |
左右のやつ限定「忄実」みたいの |
仕様書的なもの参照
bash littlebug.sh [引数1:変換方法] [引数2:(パスと)対象ファイル]
基本的に上記の置換を行うのみ。
元ファルから変換後ファイルを新設する。
同名ファイルがあれば上書きする。
flowchart TD
開始 --> 引数_ファイルの判定
引数_ファイルの判定 --ファイルあり--> 引数_変換方法の判定1
引数_ファイルの判定 --ファイルなし--> 引数エラー
引数_変換方法の判定1 --引数=1か2--> 変換後ファイルを空作成
引数_変換方法の判定1 --引数=1でも2でもない--> 引数エラー
変換後ファイルを空作成 --> 引数_変換方法の判定2
引数_変換方法の判定2 --引数=1--> txtからhtmlへ変換
引数_変換方法の判定2 --引数=2--> htmlからtxtへ変換
txtからhtmlへ変換 --> 変換後ファイルへ上書き
htmlからtxtへ変換 --> 変換後ファイルへ上書き
変換後ファイルへ上書き --> 各中間ファイルの削除
以降は一本道の処理になる想定なのでこれ以上のことは割愛。