渲染Quarto为HTML与RevealJS时如何移除三点标记?
解决Quarto中RevealJS片段标记在HTML输出中显示的问题
有两种简单的方法可以让RevealJS的片段标记. . .只在幻灯片输出中生效,同时不在HTML网页中显示:
方法一:使用内置格式条件块(推荐)
Quarto自带针对不同输出格式的内容控制功能,无需额外编写代码,只需把. . .用格式限定块包裹即可:
--- format: html: output-file: website.html revealjs: output-file: slides.html --- Hi, {{< format revealjs >}} . . . {{< /format >}} friends
这样处理后,只有渲染RevealJS幻灯片时会解析这段. . .生成片段效果,HTML网页输出会直接忽略这段内容,不会显示三点。
方法二:用Lua过滤器自动移除标记
如果不想在正文中添加短代码,可以通过Lua过滤器在HTML渲染时自动删除. . .行:
- 创建一个名为
remove-fragments.lua的文件,内容如下:
function Para(el) if quarto.doc.is_format("html") and #el.content == 1 and el.content[1].text == ". . ." then return {} end return el end
- 在Quarto文档的YAML配置中引用这个过滤器:
--- format: html: output-file: website.html filters: [remove-fragments.lua] revealjs: output-file: slides.html --- Hi, . . . friends
这个过滤器会在生成HTML时自动识别并删除内容为. . .的段落,完全不影响RevealJS的片段功能。
如果以上方案都无法满足你的需求,确实可以考虑向Quarto提交功能请求,建议明确说明希望片段标记在非RevealJS格式输出中自动被忽略的需求。
内容的提问来源于stack exchange,提问作者D G
相关产品推荐
相关产品推荐

