やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

AsciiDocの書きづらい点

これまでAsciiDocを書いてみて書きづらい点が結構あった。Markdownは優秀。

AsciiDocの書きづらい点

  • aタグ
    • http://...[テキストノード値]
      • テキストを先に見たい。URLでは何なのかわかりにくい
  • インラインcode
    • バッククォートで囲むのはいいが、バッククォートの両端にスペースを挿入せねばならない
  • リスト
    • ネストできるのが5,6階層くらいまで
      • 以降はただのテキストになってしまう
    • *の数がネストの深さである
      • TABインデントによる入力ができず面倒
  • 見出し
    • 階層を飛ばしたらエラー出てウザい
      • 例えばh1を作らずh2を作るとエラー
  • ブロック
    • ブロック範囲の囲い文字は種別によって使い分けねばならない
      • [source, python]はブロック範囲に----を使う
      • [quote]はブロック範囲に____を使う
        • ----にするとinvalid style for listing block: quoteというわかりにくいエラーが出る
      • [%autowidth]のようにテーブルにすると|====を使う
        • 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が必要になる。

所感

  • AsciiDocはMarkdownの上位互換と思っていたが、まったくそんなことはなかった。むしろ短所のほうが多い
  • 英語で書くときはいくつかの欠点が解消する。AsciiDocは英語向き
  • たとえ英語でもMarkdownのほうが楽
    • Includeやテーブルなど限られた機能だけはAsciiDocで書くほうがいいか?
      • その程度なら自分でスクリプトを書いたほうがいいかも?