我希望使用pkgdown生成分析网站,并希望在多个站点文章中使用大对象,而无需重新计算或保存.Rda
文件以包含在包构建中(即data/x.Rda
.
默认情况下,pkgdown::build_site()
忽略vignettes
带有前下划线的子目录中的文件。我当前的方法使用文件vignettes/articles.Rmd
来执行一些生成大对象的计算,然后.html
通过调用rmarkdown::render()
. 看起来的内容是.Rmd
这样的:
---
title: "Render Articles"
---
Would like to be able to share `x` with reports and maintain pkgdown html.
```{r}
x <- runif(n = 10000000) # Some calculations that generate a large object
```
Global object `x` is available from `_QC1.Rmd`
```{r}
# Code chunk to generate report (repeated for multiple _*.Rmd files)
rmarkdown::render(
input = "_QC1.Rmd", # pkgdown::build_site() ignores files with preceding underscore
output_file = "QC1.html" # renders HTML file output without "_"; copied to docs/articles/
)
```
_pkgdown.yml
可以修改以获取从 Rmarkdown 报告呈现的 html 文件,但它们会丢失.Rmd
由pkgdown::build_site()
.
如果可能,我想在这些 Rmarkdown 报告中包含 pkgdown 站点 html 格式(即标题和站点导航栏)。
_pkgdown.yml
内容:
navbar:
title: ~
left:
- text: QC
menu:
- text: QC1
href: articles/QC1.html
- text: QC2
href: articles/QC2.html
我不确定是否有更好的方法来跨文章共享对象(尽管我知道这些通常是独立的)。这种方法有效,但是为 Rmarkdown 报告呈现的 html 页面会丢失 pkgdown 格式,从而导致站点导航栏丢失。
# Example of package vignettes subdirectory contents
1 vignettes
2 ¦--_QC1.Rmd # ignored by pkgdown::build_site()
3 ¦--_QC2.Rmd
4 ¦--articles.html
5 ¦--articles.Rmd # contains R chunks for rendering Rmarkdown reports
6 ¦--QC1.html # picked up in _pkgdown.yml from `docs/articles/`
7 °--QC2.html
编辑:将在此处查看源代码:
https://github.com/r-lib/pkgdown/blob/master/R/build-articles.R