下面是一个使用custom.css.
---
title: "Test Report"
date: "`r format(Sys.time(), '%d %B, %Y')`"
params:
rmd: "report.Rmd"
output:
html_document:
css: "custom.css"
---
## R Markdown
This is an R Markdown document.
Test include from snakemake `r snakemake@input`.
这个特定的例子不起作用,因为Snakemake将.rmd文件移动到一个临时位置。
文件custom.css在资源路径中找不到
错误:pandoc文档转换失败,错误99
简单的解决方案是将custom.css
移动到report.rmd
渲染的位置,但是我们没有这个位置。此外,我们不能在标题上使用snakemake
指令,因为它只在它之后可用。
有人有解决这个问题的办法吗?我能想到的唯一解决方案是给Snakemake打补丁,让它接受特定的头参数。
脚本文件的源目录报告为"scriptdir"也许你可以用它?
---
title: "Test Report"
date: "`r format(Sys.time(), '%d %B, %Y')`"
params:
rmd: "report.Rmd"
output:
html_document:
css: "`r snakemake@scriptdir`/custom.css"
---
## R Markdown
This is an R Markdown document.
Test include from snakemake `r snakemake@input`.
我想你的语法可能是错误的。根据Rmarkdown Cookbook
output:
html_document:
css: "style.css"
更新你的yaml头,看看我们是否得到一个不同的错误,除了"文件自定义。css不在资源路径"现在我们修正了YAML格式
我想我找到了一个令人满意的解决这个问题的方法。因为,如前所述,snakemake对象在Rmarkdown文档的YAML头文件中不可用,所以我在后面为文档定义CSS。
在阅读了R Markdown Cookbook中的以下页面后,我找到了我的解决方案:应用自定义CSS,读取外部脚本到块中,以及在块选项中使用变量。
---
title: "Test Report"
date: "`r format(Sys.time(), '%d %B, %Y')`"
params:
rmd: "report.Rmd"
output:
html_document
---
```{r, echo = FALSE}
css_file <- paste0(snakemake@scriptdir, "/style.css")
```
```{css, code=xfun::read_utf8(css_file), echo=FALSE}
```
## R Markdown
This is an R Markdown document.
Test include from snakemake `r snakemake@input`.
基本上,在第一个r
代码块中,我访问了snakemake对象并获得了CSS文件的路径。在第二个css
代码块中,我从这个文件路径读取外部CSS文件。
Snakemake对象是不可用的Rmd序言(见这里)。
我发现的解决方案是使用css
块代替CSS参数:
---
title: "Test Report"
date: "`r format(Sys.time(), '%d %B, %Y')`"
params:
rmd: "report.Rmd"
output:
html_document
---
```{css, echo=FALSE}
.Sidebar {
background-image: url('logo.png');
```
## R Markdown
This is an R Markdown document.
Test include from snakemake `r snakemake@input`.
虽然这在我的用例中工作得很好,但我认为在序言中有snakemake
对象会很有帮助。