如何修改Lua过滤器以同时定位Quarto RevealJS的标题与一级标题幻灯片
解决Quarto RevealJS中标题幻灯片与一级标题幻灯片背景图片统一配置问题
问题原因
标题幻灯片在Quarto的抽象语法树(AST)中是带title-slide类的Div元素,而非Header元素,所以你之前仅在Header函数里判断classes:includes("title-slide")不会生效——因为Header元素本身没有这个类标识。
修正后的Lua过滤器
同时处理一级标题幻灯片(Header元素)和标题幻灯片(Div元素):
-- 处理一级标题幻灯片 function Header(el) if el.level == 1 then el.attributes["data-background-image"] = "bg.png" el.attributes["data-background-position"] = "left" el.attributes["data-background-opacity"] = "0.25" el.attributes["data-background-size"] = "33%" return el end end -- 处理标题幻灯片 function Div(el) if el.classes:includes("title-slide") then el.attributes["data-background-image"] = "bg.png" el.attributes["data-background-position"] = "left" el.attributes["data-background-opacity"] = "0.25" el.attributes["data-background-size"] = "33%" return el end end
关键说明
- 标题幻灯片对应的AST节点是Div,因此需要单独编写
Div处理函数,判断其是否包含title-slide类。 - 一级标题幻灯片对应level为1的Header元素,保留原有
Header处理逻辑即可。 - 这种配置方式能将所有背景属性集中在Lua过滤器中,完全适配组织模板的集中维护需求,无需在每个演示文稿的YAML头部单独配置。
内容的提问来源于stack exchange,提问作者kputschko
相关产品推荐
相关产品推荐

