HTML代码块
1 隐藏代码
大多数文档希望隐藏源码。 可以通过在文档的 execute 选项中指定 echo: false 来实现这一点 :
2 折叠代码
使用 code-fold 可以控制代码在文档中是否折叠, 还可以给折叠以后的代码显示摘要 :
3 宽度溢出
源码的宽度超出了页面宽度, 可以选择用水平滚动条或者自动换行 :
对于静态代码块, 像下面这样加上 .code-overflow-wrap 进行自动换行 :
```{.r .code-overflow-wrap}
library(ggplot2)
dat <- data.frame(cond = rep(c("A", "B"), each=10),xvar = 1:20 + rnorm(20,sd=3),yvar = 1:20 + rnorm(20,sd=3))
```#| eval: false
library(ggplot2)
dat <- data.frame(cond = rep(c("A", "B"), each=10),xvar = 1:20 + rnorm(20,sd=3),yvar = 1:20 + rnorm(20,sd=3))请注意,无论使用哪种选项,代码在页面打印的时候始终会换行
4 代码工具
选项 code-tools: true 可以在文档页眉中包含一个 Code 菜单,提供与源代码交互的多种工具 :
Code 菜单将提供显示功能,将页面所有隐藏的代码显示出来 :
还可以做一些更精细的设置 :
可以将源码放到网络上,进行链接 :
5 代码块外观
下面是默认情况下代码块的外观 :
6 代码块文件名
在代码块上使用 filename 属性, 可以给代码块加上文件名 :
7 高亮
Quarto 使用的是 Pandoc Markdown, 而 Pandoc 会自动为标记了语言名称的围栏代码块进行语法高亮。例如 :
```python
1 + 1
```1 + 1Pandoc 可为超过 140 种不同语言提供语法高亮, 如果想为不支持的语言提供高亮代码块的外观,只需使用 default 作为语言名称 :
使用 syntax-highlighting 选项指定高亮, 通常高亮会根据网站的深色(dark)和浅色(light)模式自动切换 :
还可以为深色(dark)和浅色(light)模式设置不同的高亮主题 :
下面是一些可用的高亮 :
| 高亮分类 | 名字 |
|---|---|
| 自适应主题 (Adaptive Themes) |
a11y, arrow, atom-one, ayu, breeze, github, gruvbox |
| 标准 Pandoc 主题 (Standard Pandoc Themes) |
pygments, tango, espresso, zenburn, kate, monochrome, breezedark, haddock |
| 扩展主题 (Extended Themes) |
dracula, monokai, nord, oblivion, printing, radical, solarized, vim-dark |
7.1 自定义高亮
除了可用于语法高亮的内置主题外,还可以通过主题文件来实现高亮, 高亮功能是通过 skylighting 实现的 :
_quarto.yml
---
syntax-highlighting: custom.theme
---也可以为深色(dark)和浅色(light)分开主题 :
_quarto.yml
---
syntax-highlighting:
light: custom-light.theme
dark: custom-dark.theme
---请注意,与自适应文本高亮主题一样,当您提供深色和浅色语法高亮时,主题中指定的背景颜色将被忽略,而采用整体主题指定的背景颜色。
8 行号
如果要在代码块旁边显示行号,请添加该 code-line-numbers 选项。例如 :
也可以给某一段代码单独启用行号 :
9 可执行块
如果要插入 R 或者 Python 源码(渲染效果如同 RStudio), 可以用双花括号 :
10 复制按钮
将鼠标悬停在下方代码块上,在右上角看到一个复制图标 :
此行为默认启用,可以使用 code-copy 选项修改为 true、false、hover :
format:
html:
code-copy: false