我的网站设置了三个文件。
_site.yml
name: Website
navbar:
title: Website
right:
- text: Home
- text: Info
output:
html_document:
theme: flatly
highlight: tango
index.Rmd
---
title: Welcome
output:
html_document:
theme: united
highlight: textmate
---
This is the index.
test.Rmd
---
title: Test
output:
html_document:
theme: united
highlight: textmate
---
This is the test file.
```{r}
2+2
```
如果运行rmarkdown::render("test.Rmd")
,则会得到包含网站标题的HTML。这类似于运行rmarkdown::render_site()
的输出。
如果我删除_site.yml
文件并运行相同的命令,则会得到常规的HTML输出:
因此,render()
在使用时必须使用_site.yml
。可以禁用吗?即使存在_site.yml
文件,我也想创建常规的HTML输出。当我有xaringan演示文稿并且我不希望它们与网站标题一起呈现时,这尤其是个问题。
答案 0 :(得分:1)
我不认为有一种方法可以在rmarkdown
中将其禁用,但是您可以尝试以下变通方法暂时将其重命名,然后再命名:
render_without_site_yml <- function(input, ...) {
dir <- dirname(input)
site_yml <- file.path(dir, "_site.yml")
if (file.exists(site_yml)) {
newname <- file.path(dir, "_site.yml.save")
if (file.exists(newname))
stop("'_site.yml.save' exists!")
file.rename(site_yml, newname)
on.exit(file.rename(newname, site_yml))
}
rmarkdown::render(input, ...)
}
答案 1 :(得分:0)
似乎在各个.Rmd文件中指定的output:
会覆盖_site.yml
中的默认值。
所以我的_site.yml包含
output:
html_document:
highlight: textmate
toc: true
css: "assets/doc.css"
include:
after_body: assets/footer-doc.html
我的xaringan演示文稿包含
output:
xaringan::moon_reader:
css: 'assets/slide.css'
lib_dir: libs
include: NULL
如果我调用render_site()
,则未指定任何output:
的md和Rmd文件将使用_site.yml
的默认值,获取 doc.css 样式并添加自定义页脚页脚文档。
我的自定义output:
的xaringan演示文稿是通过moon_reader
呈现的,并具有 slide.css 样式,并且没有附加页脚。
呈现输出文件并将其移动到目标文件夹。但是我收到关于xaringan幻灯片的警告:
In file.rename(output, output_dest) :
cannot rename file './source/slide_dge.html' to './dest/slide_dge.html', reason 'No such file or directory'
我还没有解释。