Bookdown:密码保护 HTML 中的 *单个* page/chapter
Bookdown: Password protect a *single* page/chapter in HTML
我正在使用 bookdown 为我的 class 制作教程工作簿。我有一个很大的 class (500+),所以有几个其他人帮助我完成课程。
所以我想为这些教程问题提供答案。
我可以生成一个全新的文档...但是(自动)交叉引用练习编号会很棘手。
所以我想知道:有没有办法对bookdown中的单个页面或单个章节进行密码保护? (这里考虑 HTML;在 PDF 中我不能包含 page/chapter。)
这可能吗?如果是这样怎么办?如果不是...还有其他想法吗...?
P.
此解决方案不使用密码,但由于您说对于 PDF,您可以简单地分发不包含相关 material 的版本,也许以下简单方法可能会有所帮助
受this question on how to conditionally input material as well as the option to use parameters in Rmarkdown启发,考虑两个Rmarkdown文件:
- main.Rmd,里面有你想给大家看的东西
- protected.Rmd,只应向某些人展示。
这些文件如下所示:
main.Rmd:
---
output: html_document
params:
include:
label: "Include extra material?"
value: ""
input: select
choices: [True, False]
---
```{r, include=FALSE}
print(params)
show_all <- as.logical(params$include)
```
```{r conditional_print, child="protected.Rmd", eval = show_all}
```
protected.Rmd:
Hello World!
假设您在 RStudio 中,如果您在 main.Rmd 上选择 "Knit with parameters",系统会要求您从交互式下拉列表中选择 select TRUE 或 FALSE。当且仅当您选择 TRUE 时,输出将包含 "Hello World"。更一般地说,带有 eval = show_all
的代码块只会在 select 包含额外的 material 时显示。因此,您当然可以有多个部分(每个部分包含在一个单独的 .Rmd 文件中),这些部分只是有条件地包含。
通过这种方式,您可以将同一份文档编织两次:一次只包含问题,一次包含问题和答案。由于这对于 pdf 和 html 都是相同的,它还为您提供了这两种输出类型的一致工作流程。
我正在使用 bookdown 为我的 class 制作教程工作簿。我有一个很大的 class (500+),所以有几个其他人帮助我完成课程。
所以我想为这些教程问题提供答案。
我可以生成一个全新的文档...但是(自动)交叉引用练习编号会很棘手。
所以我想知道:有没有办法对bookdown中的单个页面或单个章节进行密码保护? (这里考虑 HTML;在 PDF 中我不能包含 page/chapter。)
这可能吗?如果是这样怎么办?如果不是...还有其他想法吗...?
P.
此解决方案不使用密码,但由于您说对于 PDF,您可以简单地分发不包含相关 material 的版本,也许以下简单方法可能会有所帮助
受this question on how to conditionally input material as well as the option to use parameters in Rmarkdown启发,考虑两个Rmarkdown文件:
- main.Rmd,里面有你想给大家看的东西
- protected.Rmd,只应向某些人展示。
这些文件如下所示:
main.Rmd:
---
output: html_document
params:
include:
label: "Include extra material?"
value: ""
input: select
choices: [True, False]
---
```{r, include=FALSE}
print(params)
show_all <- as.logical(params$include)
```
```{r conditional_print, child="protected.Rmd", eval = show_all}
```
protected.Rmd:
Hello World!
假设您在 RStudio 中,如果您在 main.Rmd 上选择 "Knit with parameters",系统会要求您从交互式下拉列表中选择 select TRUE 或 FALSE。当且仅当您选择 TRUE 时,输出将包含 "Hello World"。更一般地说,带有 eval = show_all
的代码块只会在 select 包含额外的 material 时显示。因此,您当然可以有多个部分(每个部分包含在一个单独的 .Rmd 文件中),这些部分只是有条件地包含。
通过这种方式,您可以将同一份文档编织两次:一次只包含问题,一次包含问题和答案。由于这对于 pdf 和 html 都是相同的,它还为您提供了这两种输出类型的一致工作流程。