やってみる

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

AsciiDocで目次を自動作成する(ToC)

なんと、見出しから目次を自動で作ってくれる。

成果物

GitHubAsciiDoctor.Hello.ToC.201705101305

開発環境

前回まで

参考

ToC

ToCとはTable of Contentsの略。見出しへのリンクを自動生成してくれるAsciiDoctorの機能らしい。AsciiDoc標準なのかDoctor独自なのかは知らない。

目次をつくる

test.asc

:toc:

= AsciiDocでテーブルのセルにコードブロックを含めてみた

== 日本語

=== 日本語1

==== 日本語11

=== 日本語2

==== 日本語21

===== 日本語211

====== 日本語2111

======= 日本語21111

== EnglishTitle

=== EnglishTitle1

=== EnglishTitle2

==== EnglishTitle21

f:id:ytyaru:20170510133326p:plain

対象とする階層数を指定する

:toc:
:sectnums:
:toclevels: 5

1〜5まで。見出しでいうと========まで。HTMLでいうと<h2><h6>まで。

項目 min max
sectnums 1 5
見出し == ======
HTML <h2> <h6>

f:id:ytyaru:20170510132833p:plain

番号を振る

:toc:
:toclevels: 5
:sectnums:

f:id:ytyaru:20170510135730p:plain

タイトルを変更する

:toc:
:sectnums:
:toclevels: 5
:toc-title: 目次

f:id:ytyaru:20170510140718p:plain

目次の位置

AsciiDoc 説明
:toc: macro toc[]を書いたところに目次を配置する
:toc: left ドキュメント全体の左に目次を配置する
:toc: right ドキュメント全体の右に目次を配置する

目次を埋め込む

:toc: macro

= AsciiDocでテーブルのセルにコードブロックを含めてみた

== 日本語

=== 日本語1

==== 日本語11

=== 日本語2

toc::[]

==== 日本語21

:toc: macroとすることで埋め込めるようにし、埋め込みたい箇所にtoc::[]と書く。

f:id:ytyaru:20170510141609p:plain

左におく

:toc: left

f:id:ytyaru:20170510142723p:plain

右におく

:toc: right

f:id:ytyaru:20170510142741p:plain

アンカー

目次以外のところでも項目のリンクが欲しいときがある。

項目 AsciiDoc
見出し == 日本語
ToC アンカー名 _日本語
アンカー <<_日本語2>>を参照。

見出しを作ると_見出し名のように先頭にアンダーバーが付与したものがアンカー名になる。<<_見出し名>>とすることで、その見出しへのリンクが作れる。

f:id:ytyaru:20170510151259p:plain

任意のアンカー

見出し以外にもアンカーを作りたいことがある。[[任意のアンカー]]とすると作れる。<<任意のアンカー>>とすると参照リンクが作れる。もちろん「任意のアンカー」は好きな文字列でOK。

自アンカーの場合、[任意のアンカー]のように[]まで表示される。AsciiDoctorの仕様か。

f:id:ytyaru:20170510152110p:plain

所感

もはやMarkdownなど敵ではない。ただ、見出しのインデントを編集するのがTABキーでできたらいいのに。