SlippingStaffの日記: Wiki 記法(Textile)で連続改行・連続スペースを使う方法 2
※ Redmine で HTML タグを使用できるよう設定を変えられる場合は、この日記の内容はほとんど無価値です。
■ 背景
Redmine の Wiki 記法(Textile)では、文章を複数の空行や空白文字で自在に区切るといったことが難しい。
連続改行や連続半角スペースが 1 個分に約めてレンダリングされるためであり、
このルールは notextile タグを無視するため、回避の術も無い。
少なくとも Redmine v3 に改行,タブ,スペース を表す Textile 記法は無く、
水平罫線 "---" は style 調整ができず完全なハラキリとなるため代用とならない。
(注記欄の区切りと紛らわしいなどの問題もあって、そもそも使いにくい。)
またデフォルト設定では通常の HTML タグが無効になっており、"<br>" 等も効かない。
■ 結論
ノーマルスペース以外の空白(以下「特殊空白」)は指定した個数分レンダリングされるため、
これを利用することで連続改行・連続空白を実現できる。
連続改行は、後述Bで " ", "​"(0-width), ""(0-width n.b.) を使うか、
又は後述Cで全角空白を用いるのが良いと思われる。
連続空白は、半角では " "、全角では全角空白(リテラル)を用いる。
なお空白の有効無効は、Wikipedia: スペース#コンピュータにおけるスペースにあるもの全てについて、
リテラル,Unicode 数値文字参照,文字実体参照それぞれを確認した。
■ 方法
[連続改行]
A."<notextile></notextile>"+改行 を複数入力する。(※ 方々のウェブサイトで紹介されている方法)
メリット: B/Cと異なり、余分な空白がレンダリングされない。またCと異なり、空白文字の見逃しが発生しない。
デメリット: 本来改行と無関係(文脈上不適切)なタグを使用する、謂わば裏技である。コードが煩雑になる。タイプ量が多い。
B.特殊空白文字(文字参照)+改行 を複数入力する。
メリット: 不自然さや煩雑さがAほどではない。Cと異なり、空白文字の見逃しが発生しない。
デメリット: 不要・余分な空白がレンダリングされる(ゼロ幅スペース以外)。コードが若干煩雑になる。
C.特殊空白文字(リテラル)+改行 を複数入力する。
メリット: 不自然さや煩雑さがほとんど無い。
デメリット: 不要・余分な空白がレンダリングされる(ゼロ幅スペース以外)。
編集時に特殊空白であることが分からないため、ノーマルスペースで上書きしてしまうなどの事故が発生し得る。
[連続空白]
◎ 全ての特殊空白文字が連続入力に対応しているため、それらを複数入力する。
リテラルと文字参照のどちらを使用するかについては、連続改行と同様のメリット/デメリットがある。
キーボードからの入力は全角スペースのみが対応しているが、その他(NBSP など)のリテラルも別途レンダリング結果のコピペや IME への登録で入力できる。
■ おまけ: スラドでの連続改行
P." <BR>" を複数入力する。連続使用可能。
Q."<P> </P>" 又は "<P><BR></P>" を入力する。
1 つにつき改行 3 つ分の空行ができる。連続使用可能。
Markdownでないあたりが (スコア:0)
Redmineのよく言えば歴史の長さ、悪く言えば古さを物語ってるな
Re:Markdownでないあたりが (スコア:2)
コメントありがとうございます。表組など細かい所で Textile の豊かさに助けられる
こともあるのですが、全体の統一感やテキスト表現における整合性は Markdown に
軍配が上がると思います。(ただしどちらの仕様にも結構な「やっつけ感」を感じます。)
いやー、Markdown 使いたいですよ。
ご存じかもしれませんが、Redmine はマークアップ言語を Textile と Markdown から
選択できるのですよね。
まさに仰るとおり、古くからある現場で相当な量の Textile 資産(人的なもの含む)
があるため、もはや切り替えることができないってわけです。