use*_*808 5 pandoc r-markdown reveal.js quarto
我正在使用 Quarto 使用 RStudio 制作一些 Revealjs 幻灯片,并一直在使用该code-line-numbers选项来选择性地突出显示代码行。例如:
```{r, echo = TRUE}
#| code-line-numbers: "1|3"
x <- 1
y <- 2
x + y
x * y
```
Run Code Online (Sandbox Code Playgroud)
允许我突出显示演示文稿中的第一行和第三行代码。
我还希望能够突出显示输出中的某些行。例如,如果我只想突出显示x+y但不突出显示结果x*y,有没有办法这样做?我想知道是否有一个选项output-line-number或类似的选项可以达到预期的效果,但找不到这样的东西。
任何指示表示赞赏!
一种可能的方法是使用pandoc Lua 过滤器。
在这里,我创建了一个块选项output-line-numbers来指定要突出显示哪些输出行(与code-line-numbers块选项一样工作),但请注意,您必须使用class-output: highlight该选项才能在块输出上获得该行的特定突出显示。
---
title: "Output Line highlight"
format: revealjs
filters:
- output-line-highlight.lua
---
```{r, echo = TRUE}
#| code-line-numbers: "1"
#| class-output: highlight
#| output-line-numbers: "2"
for (i in 1:3) {
print("This is some random line")
}
```
Run Code Online (Sandbox Code Playgroud)
输出行突出显示.lua
function highlight(line_number)
local highlighter = {
CodeBlock = function(block)
if block.classes:includes('highlight') then
block.classes:insert('has-line-highlights')
block.attributes["code-line-numbers"] = line_number
return block
end
end
}
return highlighter
end
function Div(el)
if FORMAT == 'revealjs' then
if el.classes:includes('cell') then
line_number = tostring(el.attributes["output-line-numbers"])
return el:walk(highlight(line_number))
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |