【问题标题】:Minor change to existing bookdown template, how to set a custom templates/default.html对现有 bookdown 模板的微小更改,如何设置自定义模板/default.html
【发布时间】:2020-08-31 18:20:00
【问题描述】:

我对 bookdown 模板进行了一些小改动,我很确定使用现有选项无法实现,因此我想对 HTML 模板进行小幅调整,而不会对事情产生其他影响。从手册中,我可以看到默认模板是“default.html”,我可以在包目录中找到它。

https://bookdown.org/yihui/bookdown/html.html#bootstrap-style

但是该手册仅包含以下关于如何指定此文件的内容,而没有此代码通常所在的上下文以及您如何自定义它:

html_chapters(toc = TRUE, number_sections = TRUE,
  fig_caption = TRUE, lib_dir = "libs",
  template = bookdown_file("templates/default.html"), # <<<<<------ HERE
  pandoc_args = NULL, ...,
  base_format = rmarkdown::html_document,
  split_bib = TRUE, page_builder = build_chapter,
  split

如何在我的 YAML 中指定自定义:'templates/default.html'而不更改任何其他内容?

如果我这样做:

---
...
output: 
  bookdown::gitbook:
    template: my-template.html
---

my-template.html 是我的项目根目录中“templates/default.html”的未经编辑的副本,它破坏了样式。是否有一个 YAML 配置可以让我在不破坏样式的情况下进行设置?

【问题讨论】:

  • 不,我在我的问题中使用了这种方法,使my-template.html 复制templates/default.html 破坏了输出的样式。我正在寻找一种方法来指定经过调整的templates/default.html 的路径,而不会产生任何其他影响。我可以通过在我的版本中分叉 bookdown 和编辑 templates/default.html 来实现这一点,但我正在寻找一个 YAML 选项来覆盖默认值,以便它更易于维护。
  • templategitbook() 的参数是硬编码的——它不能被覆盖。
  • @M.A.这不再是真的。我刚刚更新了答案:stackoverflow.com/a/52317533/559676。我不知道为什么我在 2018 年没有看到这个帖子,但无论如何,template 参数已经变得可定制两年了。谢谢!
  • 见鬼,那会为我节省很多时间!谢谢!

标签: r r-markdown bookdown


【解决方案1】:

对于输出格式bookdown::gitbook,它没有使用模板

bookdown:::bookdown_file("templates/default.html")

但是

bookdown:::bookdown_file('templates', 'gitbook.html')

相反。您应该根据this gitbook.html template进行修改。

default.html 模板主要用于 Bootstrap 样式。

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2015-10-17
    • 2016-10-31
    • 2020-08-12
    相关资源
    最近更新 更多