これまでAsciiDocを書いてみて書きづらい点が結構あった。Markdownは優秀。
AsciiDocの書きづらい点
- aタグ
http://...[テキストノード値]
- テキストを先に見たい。URLでは何なのかわかりにくい
- 特に日本語はURLエンコーディングされるので
- テキストを先に見たい。URLでは何なのかわかりにくい
- インラインcode
- バッククォートで囲むのはいいが、バッククォートの両端にスペースを挿入せねばならない
- リスト
- ネストできるのが5,6階層くらいまで
- 以降はただのテキストになってしまう
*
の数がネストの深さである- TABインデントによる入力ができず面倒
- ネストできるのが5,6階層くらいまで
- 見出し
- 階層を飛ばしたらエラー出てウザい
- 例えばh1を作らずh2を作るとエラー
- 階層を飛ばしたらエラー出てウザい
- ブロック
- ブロック範囲の囲い文字は種別によって使い分けねばならない
[source, python]
はブロック範囲に----
を使う[quote]
はブロック範囲に____
を使う----
にするとinvalid style for listing block: quote
というわかりにくいエラーが出る
[%autowidth]
のようにテーブルにすると|====
を使う- CSVをテーブルにする場合は
,====
で表すこともできる
- CSVをテーブルにする場合は
- 囲い文字のせいで行数が増える
- ブロック範囲の囲い文字は種別によって使い分けねばならない
- include
include::test.txt[]
のように全文取得するとしても[]
を付与せねばならない- わかりにくい。わすれやすい。見づらい。書くの面倒
:
の数が違う。わかりにくく覚えづらいlink:
include::
image::
- Attribute設定しないと使えないものがある
- エラーで親切にどうすればいいか教えてくれるならいいが、そうではない
- Attribute設定について何度もググることになる
- HTMLを直接書けない
すべてMarkdownにはない問題点である。
AsciiDocがMarkdownより優れている点
- Includeできる
- Tableのセル結合やセンタリングなどができる
- ToCで見出しを自動生成できる
- 見出しにリンクが自動生成される
見出しリンクが地味に嬉しい。MarkdownにもあればAsciiDocを切り捨ててもいいくらい。Markdownでは以下のようにせねばならない。
# <a name="AsciiDocの書きづらい点">AsciiDocの書きづらい点</a> [AsciiDocの書きづらい点](#AsciiDocの書きづらい点)
AsciiDoctorでできなかったこと
動的コンテンツはできなくて当然か。JSが必要になる。