なんと、見出しから目次を自動で作ってくれる。
成果物
AsciiDoctor.Hello.ToC.201705101305
開発環境
前回まで
- http://ytyaru.hatenablog.com/entry/2018/02/02/000000
- http://ytyaru.hatenablog.com/entry/2018/02/03/000000
- http://ytyaru.hatenablog.com/entry/2018/02/04/000000
- http://ytyaru.hatenablog.com/entry/2018/02/05/000000
参考
ToC
ToCとはTable of Contentsの略。見出しへのリンクを自動生成してくれるAsciiDoctorの機能らしい。AsciiDoc標準なのかDoctor独自なのかは知らない。
目次をつくる
test.asc
:toc: = AsciiDocでテーブルのセルにコードブロックを含めてみた == 日本語 === 日本語1 ==== 日本語11 === 日本語2 ==== 日本語21 ===== 日本語211 ====== 日本語2111 ======= 日本語21111 == EnglishTitle === EnglishTitle1 === EnglishTitle2 ==== EnglishTitle21
対象とする階層数を指定する
:toc: :sectnums: :toclevels: 5
1〜5まで。見出しでいうと==
〜======
まで。HTMLでいうと<h2>
〜<h6>
まで。
項目 | min | max |
---|---|---|
sectnums | 1 | 5 |
見出し | == |
====== |
HTML | <h2> |
<h6> |
番号を振る
:toc: :toclevels: 5 :sectnums:
タイトルを変更する
:toc: :sectnums: :toclevels: 5 :toc-title: 目次
目次の位置
AsciiDoc | 説明 |
---|---|
:toc: macro |
toc[] を書いたところに目次を配置する |
:toc: left |
ドキュメント全体の左に目次を配置する |
:toc: right |
ドキュメント全体の右に目次を配置する |
目次を埋め込む
:toc: macro = AsciiDocでテーブルのセルにコードブロックを含めてみた == 日本語 === 日本語1 ==== 日本語11 === 日本語2 toc::[] ==== 日本語21
:toc: macro
とすることで埋め込めるようにし、埋め込みたい箇所にtoc::[]
と書く。
左におく
:toc: left
右におく
:toc: right
アンカー
目次以外のところでも項目のリンクが欲しいときがある。
項目 | AsciiDoc |
---|---|
見出し | == 日本語 |
ToC アンカー名 | _日本語 |
アンカー | <<_日本語2>>を参照。 |
見出しを作ると_見出し名
のように先頭にアンダーバーが付与したものがアンカー名になる。<<_見出し名>>
とすることで、その見出しへのリンクが作れる。
任意のアンカー
見出し以外にもアンカーを作りたいことがある。[[任意のアンカー]]
とすると作れる。<<任意のアンカー>>
とすると参照リンクが作れる。もちろん「任意のアンカー」は好きな文字列でOK。
独自アンカーの場合、[任意のアンカー]
のように[]
まで表示される。AsciiDoctorの仕様か。
所感
もはやMarkdownなど敵ではない。ただ、見出しのインデントを編集するのがTABキーでできたらいいのに。