asciidoctor
asciidoc
asciidoctor-pdf

asciidoc (asciidoctor) で索引(インデックス)を作る方法

はじめに

タイトルのとおりです。そのものズバリの説明を見つけることができなかったので、メモがてら書いてみました。参考になれば幸いです。

索引リストに載せたい単語の指定

索引に載せない用語を二重丸括弧で囲めば OK です。以下の例では、dup という用語を索引リストに載せるよう指示しています。

注:現時点(2017.11.10)では、Qiita が asciidoc を言語として認識していないらしく、正しく asciidoc のソースコード(?)が表示されません。そのため、今回は pre タグで囲って表示するようにしておきます。


= Forth のワード例
((dup))::
 TOS を複製します。

索引リスト作成

この方法がなかなか分からず苦労しました。結論から言うと、以下のように書けば、自動的に二重丸括弧で指定した用語のリストが索引化されます。


[index]
= 索引

備考:現時点では、索引リスト生成に対応しているのは PDF 生成と DocBook を援用する時のみだそうです(参考: http://asciidoctor.org/docs/user-manual/#index-catalog )。個人的には、HTML 文書にこそ索引が欲しかったので、困ったものです(DocBook の使い方も調べなければならないのか…とほほ)。

おまけ

ディレクトリ中の .adoc から .html と .pdf を作成する Makefile を載せておきます(もっと洗練された方法がきっとあると思いますが、とりあえず)。

注:Makefile もソースリストとして認識されないので、こちらも pre タグで囲んで表示しておきます。

.SUFFIXES: .pdf .html .adoc

SRC = $(wildcard *.adoc)
OBJECTS = $(SRC:%.adoc=%.pdf) $(SRC:%.adoc=%.html)

.PHONY: all
all: $(OBJECTS)

.adoc.html:
    asciidoctor $<

.adoc.pdf:
    asciidoctor-pdf -r asciidoctor-pdf-cjk $<