MarkdownユーザーがAsciidocを試してみた|使いやすさ・欠点・移行の所感

この記事でわかること

  • MarkdownとAsciidocの主な違い
  • Asciidocを使って感じたメリット・デメリット
  • 実際の使用例と学習コストの印象
  • Markdownからの移行はおすすめできるのか?

Markdownの限界

Markdownで記事をずっと書いてきたが、そろそろ限界を感じていた。ルビが振れない。表が書きにくい。数式が表示できない。…そんな中で見つけたのが「Asciidoc」だった。

はじめは軽い気持ちだった。「ちょっと試してみるか」程度で始めたものの、いざ書き始めてみると、予想以上にしっくりきた。「これ、最初からこっちで書いていればよかったのでは?」とすら感じるほどだった。Asciidocの思想は、“なんとなく書ける”Markdownとは違い、“最初から構造的に書く”という方向に向いている。

使い慣れているMarkdownと比べて何がどう違い、どこに惹かれたのかを、ここに記録しておく。

MarkdownからAsciidocに興味を持った理由

Markdownは軽量で便利だが、「構造化された長文」を扱うには力不足だと感じるようになった。特に以下の点で不満があった:

  • 表記の自由度が低い(脚注・ルビ・図番号など)
  • 表が複雑になると地獄(パイプ区切りの視認性)
  • 数式を書こうとするとKaTeXやMathJax頼りで面倒
  • ファイル構造やテンプレートとの連携に限界がある

そんな中で「Asciidocは本格的な技術ドキュメントのために作られた」「見出し構造や属性が自然」「PDFやHTML、EPUBにも出力可能」といった紹介を見て、試してみたくなった。

各記法の詳細等は、Qiitaなどで調べればいくらでも出てくるので割愛するが、以下に実際に使ってみて感じたことを記す。

Asciidocを使って感じた4つのメリット

1. 見出しやリストのネストが、MediaWiki記法に近い

Asciidocでの記法

== 見出し
* 箇条書き
** ネスト1
*** ネスト2

Markdownのように見出しに#を使うか、asciidocのように=を使うかは、単なるルールの違いのため、どちらが良いとは言えないが、個人的にWikipediaなどのMediaWiki記法には馴染みがあるため、asciidocのように見出しに=を使うというのは、書く上で慣れていて嬉しい。逆に、MediaWiki記法に慣れた状態から、初めてMarkdownを触ったときは、#を使うのに戸惑ったくらいだ。

箇条書き及びネストについては、asciidocの仕様はMediaWiki記法そのものである。個人的にMarkdownのネストの仕様は好きでは無かった。Markdownでは、箇条書きをネストする場合、以下のように空白文字でインデントする必要がある。空白文字でのコントロールは視認性に劣ると感じている。

Markdownでの記法

* 箇条書き
  * ネスト1
    * ネスト2

2. テーブルがCSV形式で書ける

Asciidocでの記法

[format="csv", opstions="header"]
|======
a, b, c
1, 2, 3
4, 5, 6
|======

csv形式で書けるのが地味に嬉しい。行数・列数が一目瞭然である。以下のようなMarkdownでの記法も悪い訳では無いが、どのパイプ文字「|」の内側にいるかを意識しないと、プログラミング言語における括弧閉じ忘れのように、意図しない挙動になりがちだ。

Markdownでの記法

|a  |b  |c  |
|---|---|---|
|1  |2  |3  |
|4  |5  |6  |

3. ルビが振れる

Asciidocでの記法

{ruby}漢字[かんじ]

Markdownでは不可能に近かったルビ表現も、Asciidocなら標準対応(もしくは拡張対応)。

4. 複雑なドキュメント構造が扱いやすい

  • include:: でファイルを分割できる
  • 属性(変数)で値を使い回せる
  • セクション単位でテンプレート化できる

ドキュメント全体を構造化・再利用する思想があることが好印象だった。


課題と落とし穴

もちろん完璧ではない。主な難点:

  • 普及していない(対応エディタやWebサービスが少ない)
  • 学習コストがMarkdownよりは高い(記法が多く、文法エラーもある)
  • HugoやZolaなど一部SSGではMarkdown優遇
  • PDF化には別途asciidoctor-pdfやSVG埋め込みが必要
  • 引用のデフォルト見た目が微妙(カスタム必須)

それでも、Markdownに戻れない感覚

Markdownが“誰でも書ける”軽量言語だとすれば、Asciidocは“ドキュメントのための道具”。

ルビ、数式、属性、構造、再利用──Markdownでは我慢していたものが、Asciidocでは最初からちゃんと設計されている。これはもう、「Markdownの上位互換」と言って差し支えない。


今後の方針

  • Hugo × Asciidoc のサイト構成を実験してみたい
  • Asciidoctor拡張でPDFやEPUB出力も試したい
  • Markdownでは難しかった記事テンプレートをAsciidocで再設計したい

締めの感想

「なぜこれが広まってないんだ」と思うレベルで良い。Asciidocは、“本当に書く人”のためのマークアップだと感じた。