我正在使用Pandoc生成Reveal.js演示文稿。它包括围栏代码块中的代码,如下所示:
```java
// Some Java code
```
将Reveal.js supports a way to add a highlight移至特定行或行范围,并带有应添加到data-line-numbers="1"
标签的<code>
属性。
我尝试通过各种方式将此属性添加到受防护的代码块中,例如
``` { .java data-line-numbers="1" }
// Some Java code
```
但是我无法使其正常工作。有没有办法在Pandoc中使用Reveal.js的data-line-numbers
?还是Pandoc有办法实现类似目标?还是我需要放弃而只在Markdown中使用那些凌乱的<pre><code>
HTML标签?
答案 0 :(得分:1)
correct syntax应该是:
``` {.java .number-lines}
// Some Java code
```
Pandoc自己进行语法突出显示,并且对number-lines
类敏感。
答案 1 :(得分:1)
Pandoc的代码块HTML输出未遵循Reveal.js期望编写代码的方式。例如,指示行要编号的默认pandoc方法是使用number-lines
类标记该块,而reveal.js期望使用布尔值data-line-numbers
。即使手动添加data-line-numbers
属性也不起作用:pandoc将代码包装在<pre>
和<code>
元素中,并将所有代码块属性添加到<code>
元素中,同时显示。 js在<pre>
元素中寻找它们。
我为pandoc处理自己的代码块的方式而感到困惑,因为我自己输出了Reveal.js,所以我写了这个lua过滤器:revealjs-codeblock。此过滤器调整pandoc的HTML输出,使其遵循Reveal.js规范。
它支持.number-lines
和.numberLines
类以及data-line-numbers
属性。