mdBookでテーマファイルを作るときのTips

  • mdBook は、Rust製の静的サイトジェネレータで、Markdown形式のファイルをHTML形式にエクスポートできるツール
  • Markdow → HTMLのエクスポートでは、 Handlebars 形式で記述されたファイル(index.hbs)がテンプレートになる
  • このテンプレートファイルを編集することで、まあまあ自由に、機能を変更&追加できるが、mdBook の公式サイトには情報が少ない
  • mdBookで授業資料を作る などに取り組んでいるときに気付いたことを、このページに随時まとめておこう

プレビューするとき / デプロイするときを区別したい

  • live_reload_endpointという変数で区別できそう
  • この変数は、mdbook serveでプレビューしているときにはtruemdbook 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_indexis_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}}
mdBook
Posted :