如何在Quarto文档代码块中高亮自定义SQL关键词?
在Quarto中自定义SQL关键词的语法高亮
Quarto默认使用Chroma作为语法高亮引擎,要让OFFSET、TOP这类未被默认识别的SQL关键词和SELECT、FROM一样高亮,有两种实用方法:
方法1:自定义Chroma语法规则(全局生效,推荐)
- 新建一个
sql-custom.yml文件,内容如下:
extends: sql rules: - name: keyword pattern: \b(SELECT|FROM|LIMIT|OFFSET|TOP)\b
这里在原有SQL关键词的基础上,新增了OFFSET和TOP,你可以按需求继续添加其他需要高亮的关键词。
- 在Quarto文档的YAML配置头部,引入这个自定义规则:
--- title: "SQL子句讲解" highlight-engine: chroma chroma-syntax-definitions: - sql-custom.yml ---
这样所有SQL代码块都会按照你定义的规则高亮指定关键词。
方法2:内联高亮标记(单个代码块生效)
如果只是个别代码块需要调整,直接在代码块里用[.keyword]包裹目标关键词即可:
SELECT col_name(s) FROM tbl_name LIMIT n [.keyword]OFFSET[/] m -- Syntax supported by MySQL, MariaDB, PostgreSQL, SQLite -- LIMIT = number of rows to retrieve -- OFFSET = starting row (optional)
SELECT [.keyword]TOP[/] n col_name(s) FROM tbl_name -- Syntax supported by SQL Server and MS Access
这种方式无需全局配置,适合临时调整。
补充说明
- 若自定义语法文件和Quarto文档不在同一目录,需在配置中填写相对路径。
- 若你使用Pygments作为高亮引擎(通过
highlight-engine: pygments指定),可以创建Pygments自定义词法分析器,但配置复杂度更高,优先推荐Chroma方案。
内容的提问来源于stack exchange,提问作者Bezzus
相关产品推荐
相关产品推荐

