# doxybook2 のテンプレート編集方法

doxybook2 のテンプレートの出力方法について以下にまとめます。

# 1 doxybook2 のテンプレート出力方法

## 1.1 テンプレートの生成

デフォルトテンプレートを指定したフォルダに出力 (コピー) するには、以下のコマンドを実行します。

    doxybook2 --generate-templates /path/to/folder

このコマンドを実行すると、実行ファイル内に保存されているデフォルトテンプレートファイル群が指定したフォルダにコピーされます。
注意点として、フォルダは事前に存在している必要があり、同名ファイルがある場合は上書きされます。

## 1.2 カスタムテンプレートの使用

テンプレートを使用するには、`.tmpl` ファイル拡張子で終わるテンプレートファイルを含むフォルダを作成し、以下のように指定します。

    doxybook2 --input ... --output ... --templates /path/to/folder

## 1.3 テンプレートの種類

doxybook2 には以下のコアテンプレートがあります。

主要テンプレート (設定ファイルで定義):

- `templateIndexExamples`
- `templateIndexFiles`
- `templateIndexGroups`
- `templateIndexNamespaces`
- `templateIndexRelatedPages`
- `templateKindClass`
- `templateKindExample`
- `templateKindFile`
- `templateKindGroup`
- `templateKindDir`
- `templateKindNamespace`
- `templateKindPage`
- `templateKindUnion`
- `templateKindInterface`
- `templateKindStruct`

依存テンプレート:

- `meta`
- `header`
- `footer`
- `index`
- `breadcrumbs`
- `member_details`
- `mode_details`
- `class_members_tables`
- `class_members_inherited_tables`
- `class_members_details`

## 1.4 テンプレートのデバッグ

    doxybook2 --debug-templates ...

このオプションを使用すると、各テンプレートに対応する JSON ファイル (*.md.json) が生成され、テンプレートに渡されるデータ構造を確認できます。

### 1.4.1 テンプレートの中で利用可能なフィールドを確認する方法

    **利用可能フィールド:**
    {% for key, value in param -%}
    - `{{key}}`: "{{value}}"
    {% endfor %}s

## 1.5 テンプレートエンジン

doxybook2 は、Python Jinja ライクな C++ テンプレートエンジン「inja」を使用しており、`{% include "template_name" %}` や `{{ render("template_name", data) }}` などの構文が使用できます。