rmarkdown::html_document
をrmarkdown::output_format
で拡張する時、引数の指定方法を注意しないと、self_contained
引数やkeep_md
引数がうまく機能しなくなります(参考: オリジナルなR Markdownの出力形式を作るoutput_format関数事始め)。
rmarkdown ≧ 2.2
私が出したPR 1823により、
rmarkdown::html_document
のself_contained
やkeep_md
の状態を、
rmarkdown::output_format
が引き継げるようになりました。他の引数と同様に、base_format
の内容を引き継ぐにはclean_supporting
とkeep_md
をNULL
にしましょう。
my_html_document <- function(
self_contained = TRUE, keep_md = FALSE, ...
) {
rmarkdown::output_format(
clean_supporting = NULL,
keep_md = NULL,
base_format = rmarkdown::html_document(
self_contained = self_contained,
keep_md = keep_md,
...
)
)
}
rmarkdown < 2.2
rmarkdown::html_document
のself_contained
引数とkeep_md
引数に与えた値を、それぞれrmarkdown::output_format
のclean_supporting
引数とkeep_md
引数にも与えておきます。両方に与えるのがポイントです。
rmarkdown::html_document
に与えず、rmarkdown::output_format
にだけ与えておくと、
rmarkdown::html_document
がそれぞれの引数に対して内部で行う処理を無視してしまいます。特に、self_contained
はTRUE
かFALSE
かでPandocに与える引数が変わります。私はこれを知らずにminidown
パッケージを実装したがために、
self_contained = FALSE
にすると画像ファイルなどを別フォルダにも出力しつつ、
self_contained = TRUE
なHTMLファイルを出力するフォーマットを作ってしまいました。この問題は開発版で修正済みで、CRANには0.0.2として近い内にアップする予定です。
my_html_document <- function(
self_contained = TRUE, keep_md = FALSE, ...
) {
rmarkdown::output_format(
clean_supporting = self_contained,
keep_md = keep_md,
base_format = rmarkdown::html_document(
self_contained = self_contained,
keep_md = keep_md,
...
)
)
}