Edited at

Markdownでかけなかったアレ、Asciidocならこうかけますよ。

More than 1 year has passed since last update.

AsciidocというMarkdownに似た軽量マークアップ言語があります。

Asciidocの基本的な使い方等は参考文献に譲るとして、ここでは「Markdownでかけなかったアレ、Asciidocならこうかけますよ」っていうのを書きたいと思います。

画像はVSCodeでPreviewした結果です。


順序有りリストの途中でコードを書く

Markdownで順序有りリストの途中にコードを書くと残念なことになってしまいます。


qiita.md

1. まずこうします。

2. 次にこうします。その時叩くコマンドはこれです。
\``` (適当にエスケープしています)
$ echo "hoge"
\```
 (適当にエスケープしています)
3. 最後にこうして完了。

これを表示させるとこうなります。

「最後にこうして完了。」の部分が「1.」になってしまっています。

途中でコードを入れたことで順序リストが一旦終わってしまったんですね。

これはAsciidocだと回避することができます。


qiita.adoc

== 順序付きリスト

. まずこうします。
. 次にこうします。その時叩くコマンドはこれです。
+
----
$ echo "hoge"
----
+
. 最後にこうして完了。


+を書くことで「まだリストが続きますよ」ということを表すことができるのです!


テーブル

Markdownではテーブルは標準では(HTMLを使わないと)かけないので、各自同時実装しているのが現状です。

各自、微妙に書き方が違っていて困りものなのですが、それ以上に困るのがセルの結合です。

特に縦の結合については、それがかけるMarkdownの処理系というのは(少なくとも自分は)知りません。

Asciidocではテーブルは標準表示でセルの結合も使放題です。


qiita.adoc

== テーブル

|===
|1 |2 |3 |4
|5 2.2+|6 1.3+|7
|8
|9 2+|10
|===


書き方も複数用意されていて、csvで書くこともできます。


qiita.adoc

[format="csv", options="header"]

|===
アーティスト,トラック,ジャンル
Baauer,Harlem Shake,Hip Hop
The Lumineers,Ho Hey,Folk Rock
|===


ファイルのインクルード

Asciidocでは他のファイルをインクルードすることができます。これがめちゃくちゃ便利!


qiita.adoc

include::other.adoc[]



other.adoc

=== Other

他のこと



応用

ファイルのインクルードと先程のテーブルのcsv記法やコードの表示を使えばcsvファイルやプログラムファイルも読み込めちゃいます。


qiita.adoc

=== csvをテーブルとして表示

[format="csv", options="header"]
|===
include::other.csv[]
|===

=== プログラムの埋め込み

[source,ruby]
----
include::other.rb[]
----



other.csv

国,首都,人口(2006) CRLF

日本国,東京,127767944 CRLF
アメリカ合衆国,ワシントン,300007997 CRLF


other.rb

require 'sinatra'

get '/hi' do
"Hello World!"
end



注釈

Asciidocではこんな注釈が用意されています。

地味に嬉しい。


最後に

どうでしょうか?

Asciidoc使ってみたくなってきたでしょうか?

GithubやGistはもう対応しているようなので、自分は今後は積極的にAsciidocを使っていきたいと思っています。

皆さんも是非。

QiitaもはやくAsciidocに対応するべき!


参考文献