我想为bookdown项目编写一个自定义模板。从bookdown包的documentation我读到,可以用自定义的模板替换默认模板,比如my_custom_template.html
,在YAML标题中包含template: "my_custom_template.html"
就像
bookdown::gitbook:
template: my_custom_template.html
这样做会产生以下错误:
Error in rmarkdown::html_document(..., extra_dependencies = c(extra_dependencies, :
formal argument "template" matched by multiple actual arguments
Calls: <Anonymous> ... do.call -> <Anonymous> -> html_document2 -> <Anonymous>
Execution halted
Error in eval(expr, envir, enclos) :
Failed to compile the book to bookdown::gitbook
在我看来,默认模板是硬编码的,因此不能轻易覆盖。
还有其他方法可以包含自定义模板吗?
这是不可能的,并且以这种方式记录:在使用函数的文档(?bookdown::gitbook
)中,template
被排除在要传递给rmarkdown::html_document()
的可用参数列表中,以及toc
和theme
。您链接到的页面中也会提到这一点:
有一些html_document()的参数已在gitbook()中进行了硬编码,你无法改变它们:toc = TRUE(必须有一个目录),theme = NULL(不使用任何Bootstrap主题),以及模板(存在内部GitBook模板)。