mdBookでテーマファイルを作るときのTips
- mdBook は、Rust製の静的サイトジェネレータで、Markdown形式のファイルをHTML形式にエクスポートできるツール
- Markdow → HTMLのエクスポートでは、
Handlebars
形式で記述されたファイル(
index.hbs
)がテンプレートになる - このテンプレートファイルを編集することで、まあまあ自由に、機能を変更&追加できるが、mdBook の公式サイトには情報が少ない
- mdBookで授業資料を作る などに取り組んでいるときに気付いたことを、このページに随時まとめておこう
プレビューするとき / デプロイするときを区別したい
live_reload_endpoint
という変数で区別できそう- この変数は、
mdbook serve
でプレビューしているときにはtrue
、mdbook build
してデプロイするときにはfalse
になる - ウェッブフォントやスクリプトなどを、ローカルでは絶対パス、デプロイ後は相対パスで指定したいときに便利
{{#if live_reload_endpoint}}
<link rel="stylesheet" href="https://example.com/assets/fonts/fonts.css">
{{else}}
<link rel="stylesheet" href="../assets/fonts/fonts.css">
{{/if}}
インデックスページ / プリントページを区別したい
is_index
とis_print
という変数が使えそう- mdBookでは、最初のページを
index.html
、全てのページを連結したものがprint.html
として自動的に作られる - デフォルトのテーマファイルでも
is_print
は使われていたけれど、is_index
はmdBookのソースコードを読むまでは知らなかった index.html
のみに<meta>
情報を表示させたり、print.html
のみでスクリプトを実行したいときに便利
{{#if is_index}}
<meta property="og:site_name" content="{{ book_title }}" />
{{/if}}