/vivliostyle-index-sample

Vivliostyle CLIによる索引作成のサンプル

Primary LanguageJavaScriptMIT LicenseMIT

索引作成サンプル

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>

TODO

索引用の別名を付けられるようにする

[*人気:にんき:人気(にんき)]
[*人気:ひとけ:人気(ひとけ)]

ルビなどに対応する

処理の効率化