7.9 カスタム HTML テンプレートを使う (*)
既に6.10節で LaTeX テンプレートについて話しました. カスタム HTML テンプレート を指定すると, Pandoc が Markdown を HTML へと変換できます. 以下は簡単なテンプレートの例です.
<html>
<head>
<title>$title$</title>
$for(css)$
<link rel="stylesheet" href="$css$" type="text/css" />
$endfor$
</head>
<body>
$body$
</body>
</html>テンプレートに $title$, $body$ といったいくつかの変数が含まれているのがわかるでしょう. Pandoc 変数の完全なリストとそれぞれの意味については https://pandoc.org/MANUAL.html#templates で検索できます.
テンプレートによってあなたは HTML 出力をカスタマイズする究極の力を得ることになります. 例えば好きな CSS スタイルシートや JavaScript コード, あるいはライブラリを <head> 内で読み込ませたりできます. あるいは次のように, 文書が下書きか最終稿かを示すブーリアン変数 draft も使えます.
<head>
<style type="text/css">
.logo {
float: right;
}
</style>
</head>
<body>
<div class="logo">
$if(draft)$
<!-- use draft.png to show that this is a draft -->
<img src="images/draft.png" alt="Draft mode" />
$else$
<!-- insert the formal logo if this is final -->
<img src="images/logo.png" alt="Final version" />
$endif$
</div>
$body$
</body>すると Rmd 文書の YAML メタデータ内で draft 変数に true または false を設定できます. 例えばこのように.
---
title: "An Important Report"
draft: true
---テンプレートを Rmd 文書に適用するためには, テンプレートをファイルに保存した上で, html_document の template オプションにファイルパスを与えます. 例えばこのように.
output:
html_document:
template: my-template.htmlrmarkdown パッケージに同梱したカスタム HTML テンプレートを読み込んで使用しており, これは Pandoc のデフォルトテンプレートとは異なります. Pandoc のデフォルトを使うには template: null で指定できます.