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 都是相同的,它还为您提供了这两种输出类型的一致工作流程。