MetaBlog Example

代码框与语法高亮

本文阅读量

Abstract

MetaBlog 会把 lstlistingminted 环境渲染为带行号、交互按钮和 Chroma 语法高亮的代码框。

1lstlisting

lstlisting 环境会从 language 可选参数读取代码语言。其他可选参数目前会被忽略。

Go
1package main
2
3import "fmt"
4
5func main() {
6 fmt.Println("你好,MetaBlog")
7}

2minted

minted 环境会从必选参数读取代码语言。可选参数会被忽略。

python
1from dataclasses import dataclass
2
3@dataclass
4class Article:
5 title: str
6 slug: str
7
8def render(article: Article) -> str:
9 return f"<h1>{article.title}</h1>"

3长行

代码框标题栏中的 wrap 按钮可以切换视觉自动换行。行号仍然对应原始源码行。

JavaScript
1const message = "这是一行刻意写得很长的代码,用来展示 MetaBlog 文章页面中代码框的自动换行切换效果。";
2console.log(message);

4普通 verbatim

如果只需要保留原始文本而不做语法高亮,可以使用 verbatim

text
1verbatim 会把 \section、%、{braces} 这类内容保留为原始文本。