我正在使用blogdown创建一个博客,在其中我比较R中的代码和Stata中的代码。我想要:
This person和this person成功地在Blogdown中折叠了他们的代码块,但显然默认情况下隐藏或显示了每个块。默认情况下,我如何只隐藏一些块?是否有一个选项可以隐藏或显示Blogdown中的代码块(例如选项eval
,echo
...)?
答案 0 :(得分:1)
由于我先前的答案有点混乱并且不太详细,因此我做出了一个新的答案,该答案与我想做的事情很好(即可以折叠一些代码块)。
解决方案是使用details指出的Jonathan Sidi的this answer软件包。最初,此软件包的目的是在使用R Markdown(因此也使用R Blogdown)制作的HTML文档中隐藏一些占用大量空间的输出,例如sessionInfo
。这是一个示例(取自软件包的网站):
---
title: "Test"
output: html_document
---
```{r}
library(details)
sessioninfo::session_info()%>%
details::details(summary = 'current session info')
```
但是,我要隐藏的不是某些R代码的输出而是Stata代码(这不是要运行),以便读者可以根据需要将R代码与Stata代码进行比较。因此,我们必须使用一些HTML来做到这一点:
---
title: "Test"
output: html_document
---
## Regression with R and Stata
```{r, eval=FALSE}
lm(mpg ~ drat, data = mtcars)
```
<details>
<summary> Stata </summary>
```stata
regress y x
```
</details>
现在,读者可以看到Stata代码,如果他们愿意的话,那些不想的人也不会被太多的代码块所分散。这也适用于Blogdown文章(因为它只是网站上的某些R Markdown)。
该软件包的网站上详细介绍了更多功能(例如customize the hidden chunks)。
答案 1 :(得分:0)
我发现了另一种替代方案,这似乎是迄今为止最好的替代方案:使用{xaringanExtra}
的面板集。
面板集适用于{xaringan}
个演示文稿以及R Markdown(因此{blogdown}
)输出。有关更多选项和详细信息,请参见here。这是一个小演示:
---
title: Title
output:
blogdown::html_page
---
```{r include = FALSE}
library(xaringanExtra)
# enable panelset
use_panelset()
```
## Title
Here's a simple way to display several code chunks in a concise way:
::::: {.panelset}
<!-- First panel -->
::: {.panel}
[R code]{.panel-name}
Check the R code below:
```{r echo = TRUE, eval = FALSE}
lm(mpg ~ drat, data = mtcars)
```
:::
<!-- Second panel -->
::: {.panel}
[Stata code]{.panel-name}
```
regress y x
```
:::
<!-- Third panel -->
::: {.panel}
[R output]{.panel-name}
```{r echo = FALSE, eval = TRUE}
lm(mpg ~ drat, data = mtcars)
```
:::
::::