AsciidocというMarkdownに似た軽量マークアップ言語があります。
Asciidocの基本的な使い方等は参考文献に譲るとして、ここでは「Markdownでかけなかったアレ、Asciidocならこうかけますよ」っていうのを書きたいと思います。
画像はVSCodeでPreviewした結果です。
順序有りリストの途中でコードを書く
Markdownで順序有りリストの途中にコードを書くと残念なことになってしまいます。
1. まずこうします。
2. 次にこうします。その時叩くコマンドはこれです。
\``` (適当にエスケープしています)
$ echo "hoge"
\``` (適当にエスケープしています)
3. 最後にこうして完了。
これを表示させるとこうなります。
「最後にこうして完了。」の部分が「1.」になってしまっています。
途中でコードを入れたことで順序リストが一旦終わってしまったんですね。
これはAsciidocだと回避することができます。
== 順序付きリスト
. まずこうします。
. 次にこうします。その時叩くコマンドはこれです。
+
----
$ echo "hoge"
----
+
. 最後にこうして完了。
+
を書くことで「まだリストが続きますよ」ということを表すことができるのです!
テーブル
Markdownではテーブルは標準では(HTMLを使わないと)かけないので、各自同時実装しているのが現状です。
各自、微妙に書き方が違っていて困りものなのですが、それ以上に困るのがセルの結合です。
特に縦の結合については、それがかけるMarkdownの処理系というのは(少なくとも自分は)知りません。
Asciidocではテーブルは標準表示でセルの結合も使放題です。
== テーブル
|===
|1 |2 |3 |4
|5 2.2+|6 1.3+|7
|8
|9 2+|10
|===
書き方も複数用意されていて、csvで書くこともできます。
[format="csv", options="header"]
|===
アーティスト,トラック,ジャンル
Baauer,Harlem Shake,Hip Hop
The Lumineers,Ho Hey,Folk Rock
|===
ファイルのインクルード
Asciidocでは他のファイルをインクルードすることができます。これがめちゃくちゃ便利!
include::other.adoc[]
=== Other
他のこと
応用
ファイルのインクルードと先程のテーブルのcsv記法やコードの表示を使えばcsvファイルやプログラムファイルも読み込めちゃいます。
=== csvをテーブルとして表示
[format="csv", options="header"]
|===
include::other.csv[]
|===
=== プログラムの埋め込み
[source,ruby]
----
include::other.rb[]
----
国,首都,人口(2006) CRLF
日本国,東京,127767944 CRLF
アメリカ合衆国,ワシントン,300007997 CRLF
require 'sinatra'
get '/hi' do
"Hello World!"
end
注釈
Asciidocではこんな注釈が用意されています。
地味に嬉しい。
最後に
どうでしょうか?
Asciidoc使ってみたくなってきたでしょうか?
GithubやGistはもう対応しているようなので、自分は今後は積極的にAsciidocを使っていきたいと思っています。
皆さんも是非。
QiitaもはやくAsciidocに対応するべき!