Quarto Revealjs如何基于YAML参数生成不同版本演示文稿?
Quarto RevealJS双版本幻灯片条件渲染修复方案
你之前用.content-visible的写法不符合Quarto的条件渲染规范,导致内容无法按参数隐藏。以下是几种可靠的替代实现方式:
方案1:原生条件短代码(最推荐)
使用Quarto官方支持的{{< if >}}短代码包裹需要条件显示的内容,这是最稳定的写法:
{{< if params.version == "presenter" >}} ## Solution to Task 2 2 + 2 = 4 {{< end >}}
YAML参数保持原有设置即可:
params: version: "student" # 改为"presenter"即可生成讲师版
方案2:结合RevealJS片段功能(适合演示时逐步展示)
如果讲师需要在演示过程中逐步显示解答,可以把RevealJS的片段动画和条件渲染结合:
## Task 2 计算2+2的结果 {{< if params.version == "student" >}} ::: {.fragment} *提示:自行计算后,讲师版将展示完整解答* ::: {{< end >}} {{< if params.version == "presenter" >}} ## Solution to Task 2 ::: {.fragment} 2 + 2 = 4 ::: {{< end >}}
方案3:针对代码类解答的条件渲染
如果解答包含代码块,可直接用短代码包裹代码区域:
## Task 2 用R计算2+2的结果 {{< if params.version == "presenter" >}} ## Solution to Task 2 ```r 2 + 2
输出结果:
[1] 4
{{< end >}}
## 验证渲染命令 渲染时可通过命令行指定参数,确保版本切换生效: - 生成学生版: ```bash quarto render your-slides.qmd -P version=student
- 生成讲师版:
quarto render your-slides.qmd -P version=presenter
内容的提问来源于stack exchange,提问作者OnLeRo
相关产品推荐
相关产品推荐

