設定

設定はオプションです。guidebook は設定なしでも動作します。

book.json

ブックのルートディレクトリに book.json ファイルを作成:

{
    "title": "私のブック",
    "plugins": [
        "collapsible-chapters",
        "back-to-top-button",
        "mermaid-md-adoc"
    ],
    "styles": {
        "website": "styles/website.css"
    }
}

オプション

オプション説明デフォルト
titleブックタイトル"My Book"
plugins有効なプラグイン下記参照
styles.websiteカスタム CSS ファイルnull
variablesユーザー定義変数 ({{ book.xxx }}){}
hardbreaks単一改行を <br> として扱うfalse
mathKaTeX 数式レンダリングを有効化false
externalize_svgインライン SVG を外部ファイルに分離false
inline_svgSVG ファイルを HTML にインライン化false
fetchRemoteImagesビルド時にリモート画像をダウンロードfalse
openapiOpenAPI/Swagger UI 仕様ファイルnull

デフォルトプラグイン

以下のプラグインはデフォルトで有効(設定不要):

  • collapsible-chapters - 折りたたみサイドバー
  • back-to-top-button - トップに戻るボタン
  • mermaid-md-adoc - Mermaid 図のサポート
  • fontsettings - フォントサイズ・テーマ切替(白/セピア/ナイト)

デフォルトプラグインを無効にするには、- をプレフィックスに:

{
    "plugins": ["-mermaid-md-adoc"]
}

変数

カスタム変数を定義し、Nunjucks/Jinja2 構文で Markdown 内で使用:

{
    "variables": {
        "version": "1.0.0",
        "appName": "My App"
    }
}

Markdown 内での使用:

現在のバージョン: {{ book.version }}

{{ book.appName }} へようこそ!

コードブロック(````)内の変数は展開されません。

数式(KaTeX)

数式レンダリングを有効化:

{
    "math": true
}

インライン数式には $...$、ディスプレイ数式には $$...$$ を使用。

リモート画像ダウンロード

ビルド時にリモート HTTPS 画像をダウンロードしてオフラインアクセス可能に:

{
    "fetchRemoteImages": true
}

画像は _remote_images/ に CRC32 ベースのファイル名でキャッシュされます。1画像あたり最大 50 MB。

OpenAPI / Swagger UI

OpenAPI 仕様から Swagger UI を生成:

{
    "openapi": "swagger.json"
}

複数 API の場合:

{
    "openapi": {
        "api-docs": "swagger/v1.json",
        "admin-api": "swagger/admin.json"
    }
}

カスタムスタイル

CSS ファイルを作成し、book.json で参照:

/* styles/website.css */
.book {
    font-family: "Noto Sans JP", sans-serif;
}

.markdown-section h2 {
    border-left: 4px solid #007acc;
    padding-left: 10px;
}