Typst CSS
概述
Typst CSS 功能将 CSS 属性转换为 Typst 属性,以允许 HTML 格式和 Typst 格式之间的样式相似。
它针对两种使用场景进行了调整:
- 由表格包样式化的 HTML 表格
- 表示带有颜色装饰的控制台输出的 HTML
<pre>
标签,例如来自 ANSI。
本文档适用于:
- 希望生成可转换为 Typst 的
table
或pre
输出的包开发者 - 希望改进 CSS 属性翻译或添加其他 CSS 属性的扩展开发者
它描述了 Typst CSS 的工作原理、如何启用和禁用此功能以及相关的 pre
标签处理、故障排除以及添加或更改翻译过滤器。
Typst CSS 的工作原理
除非 禁用了表格处理,否则 HTML 原始块中的表格将被解析为 Pandoc AST,然后由输出格式写入。
当输出格式为 Typst 时,Quarto 将 juice
HTML 输入,并使用 HTML 原始块中包含的样式表中的规则为 HTML 元素添加 CSS 属性。 Quarto 的后处理过滤器将 HTML 属性和 CSS 属性转换为 typst:property
或 typst:text:property
形式的属性,Pandoc 中的 Typst 写入器会相应地写入输出。
你可以选择加入以相同方式处理 pre
标签:请参阅 pre
标签处理。
支持的元素和属性
Typst CSS 适用于以下特定组合的 HTML 元素和 CSS 属性:
span | div | table | td | |
---|---|---|---|---|
background-color | ✓ | ✓ | ||
border1 | ✓ | |||
color | ✓ | ✓ | ||
font-family | ✓ | ✓ | ||
font-size | ✓ | ✓ | ||
opacity | ✓ | ✓ | ||
align2 | ✓ |
禁用 Typst CSS
CSS 到 Typst 的 Lua 过滤器在整个 AST 上运行(而不仅仅是表格和 pre 标签)。出于故障排除目的,可以通过以下方式禁用过滤器:
format:
typst:
css-property-processing: none
故障排除
为了确保包输出的 HTML 表格可以通过 Typst CSS 进行转换,请使用 keep-md: true
渲染文档。然后检查 .typst.md
文件中的 HTML 原始块,例如
```{=html}<table>
</table>
```
原始块必须包含一个 HTML <table>
标签,该标签前面可能会有样式表(<style>
)。
类似地,用于 pre
标签处理的原始块必须包含一个 <pre>
标签,该标签前面可能会有样式表。
修改翻译
你可以添加自己的 Lua 过滤器来添加或更改 CSS 属性到 Typst 属性的翻译。
请参阅 Pandoc 文档中的 Typst 属性输出 和 将 CSS 属性翻译为 Typst 的 Lua 过滤器 的源代码。
你可以通过在 Typst CSS Lua 过滤器之前运行你的过滤器并移除 CSS 属性(未测试)来覆盖 Typst CSS Lua 过滤器的行为。你可以通过在 Typst CSS Lua 过滤器之前或之后运行你的过滤器来添加对其他 CSS 属性的支持。