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.html
rmarkdown パッケージに同梱したカスタム HTML テンプレートを読み込んで使用しており, これは Pandoc のデフォルトテンプレートとは異なります. Pandoc のデフォルトを使うには template: null
で指定できます.