Vivliostyle-CLIでVFMの置換機能を使って索引を作成するサンプルです。
- script.js … 置換スクリプト本体
- index.css … 索引用スタイルの例
本文中の見出し語へのリンクを作成するためにその原稿のファイルパスが必要なため、原稿の冒頭で以下のようにファイルパスを指定してください。
[begin:manuscript01.md]
本文中で以下のように見出し語をマークアップします。
[*見出し語:みだしご] 読みの指定が必要な場合はコロン区切りで指定します。
[*headword] 読みの指定が必要ない場合(記号、英数字で始まる語)は読みを省略でき、見出し語がそのまま読みとして使用されます。
[*123,45]
[*\\!] 見出し語の無効化(後述)の記法にマッチしてしまうため、!から始まる見出し語は\\でエスケープしてください。
[*\\]] [*\\:] "]"や":"を見出し語に含む場合は\\でエスケープしてください。
1ページに同じ見出し語が複数あった場合には索引に同じページが複数表示されてしまうため、そのページの先頭の見出し語を除き"!"を追記して以下のように無効化してください。
[*!見出し語,みだしご]
[*!headword]
[*!123,45]
索引の原稿を作成し、以下のように記述することで見出し語のリストを出力します。アルファベットの大文字小文字とひらがなカタカナは同一視して辞書順に並べます。
カンマ区切りで指定した文字で始まる見出し語のみを書き出すので、自由度の高い索引が作成できます。
[index:(,),+,-,*,/,=,<,>,!,!,&]
[index:a,A]
[index:0,1,2,3,4,5,6,7,8,9]
[index:あ,い,う,え,お,ア,イ,ウ,エ,オ]
# 索引 {#index}
## あ行
[index:あ,い,う,え,お,ア,イ,ウ,エ,オ]
<section id="index" class="level1">
<h1>索引</h1>
<section id="あ行" class="level2">
<h2>あ行</h2>
<p>
<dl>
<div>
<dt>以下</dt>
<dd><a href="manuscript01.html#word-6-0">.</a></dd>
</div>
<div>
<dt>以上</dt>
<dd><a href="manuscript01.html#word-5-0">.</a></dd>
</div>
</dl>
</p>
</section>
</section>
[*人気:にんき:人気(にんき)]
[*人気:ひとけ:人気(ひとけ)]