带有 Rmarkdown 和 custom.css 文件的 Snakemake 报告
Snakemake report with Rmarkdown and custom.css file
下面是Snakemake Rmd report with a 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 文件移动到一个临时位置。
File custom.css not found in resource path
Error: pandoc document conversion failed with error 99
简单的解决方案是将 custom.css
移动到呈现 report.rmd
的位置,但我们没有这个位置。此外,我们不能在 header 上使用 snakemake
指令,因为它只能在它之后使用。
有人能解决这个问题吗?我能想到的唯一解决方案是修补 Snakemake 以接受特定的 header 参数。
我想你的语法可能有误。根据 Rmarkdown Cookbook
output:
html_document:
css: "style.css"
更新您的 yaml header 并查看我们是否收到 css 的其他错误,而不是您之前收到的“在资源路径中找不到文件 custom.css”我们更正了 YAML 格式
脚本文件的源目录报告为“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`.
Snakemake 对象不可用 Rmd 序言(see here)。
我找到的解决方案是使用 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
对象会很有帮助。
我想我找到了解决这个问题的比较满意的方法。由于如前所述,Rmarkdown 文档的 YAML header 中没有 snakemake object,因此我随后为文档定义了 CSS。
我在阅读 R Markdown Cookbook 中的以下页面后找到了我的解决方案:Apply custom CSS, Read external scripts into a chunk as well as Use variables in chunk options。
---
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 object 并获取了 CSS 文件的路径。在第二个 css
代码块中,我从这个文件路径读取了外部 CSS 文件。
下面是Snakemake Rmd report with a 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 文件移动到一个临时位置。
File custom.css not found in resource path
Error: pandoc document conversion failed with error 99
简单的解决方案是将 custom.css
移动到呈现 report.rmd
的位置,但我们没有这个位置。此外,我们不能在 header 上使用 snakemake
指令,因为它只能在它之后使用。
有人能解决这个问题吗?我能想到的唯一解决方案是修补 Snakemake 以接受特定的 header 参数。
我想你的语法可能有误。根据 Rmarkdown Cookbook
output:
html_document:
css: "style.css"
更新您的 yaml header 并查看我们是否收到 css 的其他错误,而不是您之前收到的“在资源路径中找不到文件 custom.css”我们更正了 YAML 格式
脚本文件的源目录报告为“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`.
Snakemake 对象不可用 Rmd 序言(see here)。
我找到的解决方案是使用 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
对象会很有帮助。
我想我找到了解决这个问题的比较满意的方法。由于如前所述,Rmarkdown 文档的 YAML header 中没有 snakemake object,因此我随后为文档定义了 CSS。
我在阅读 R Markdown Cookbook 中的以下页面后找到了我的解决方案:Apply custom CSS, Read external scripts into a chunk as well as Use variables in chunk options。
---
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 object 并获取了 CSS 文件的路径。在第二个 css
代码块中,我从这个文件路径读取了外部 CSS 文件。