如何创建一个针对 Quarto Revealjs 演示文稿中的标题幻灯片的 lua 过滤器

问题描述 投票:0回答:1

我想以此问题中的答案为基础。

我想修改满足特定条件的幻灯片的背景图像。在本例中,我想将新属性应用于标题幻灯片和所有 1 级标题幻灯片。此函数成功定位所有 1 级标题,但我不确定如何定位标题幻灯片。

我知道我可以在单个 Quarto 演示文稿文件的 YAML 标头中执行此操作,但我正在为我的组织创建一个模板,并且希望通过将其保留在一个中来使此背景修改尽可能简单且易于维护地点。

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

我已经尝试过这个,基于我超级有限的lua知识,但它不起作用。

function Header(el)
  if el.level == 1 or 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

最后,我将使用的最小示例来自链接问题的答案

lua quarto reveal.js
1个回答
0
投票

我认为以不同的方式处理标题幻灯片的背景图像会更容易,因为我们在文档 yaml 块中指定了标题幻灯片背景图像属性。

考虑到这一点,您可以尝试以下方法,

local bg_image = "beach.jpeg"
local bg_pos = "left"
local bg_opacity = "0.25"
local bg_size = "33%"


function Header(el)
  if el.level == 1 then
    el.attributes["data-background-image"] = bg_image
    el.attributes["data-background-position"] = bg_pos
    el.attributes["data-background-opacity"] = bg_opacity
    el.attributes["data-background-size"] = bg_size
    return el
  end
end

function Meta(m)
  m["title-slide-attributes"] = {
    ["data-background-image"] = bg_image,
    ["data-background-position"] = bg_pos,
    ["data-background-opacity"] = bg_opacity,
    ["data-background-size"] = bg_size
  }
  return m
end
© www.soinside.com 2019 - 2024. All rights reserved.