我使用<mark>...</mark>
突出显示Markdown文档中的文本,例如Google Python Style Guide。我在查找代码时遇到困难。例如,我想强调如何用类型注释:
```python
<mark>def func(a: int) -> List[int]:</mark>
```
但是此pandoc命令:
pandoc -s -t html5 -o "Google Python style guide.html" "Google Python style guide.md"
将<mark>
和</mark>
显示为代码,并且不呈现HTML高亮。
一种解决方案是使用pre
标签,例如:
<pre><mark>def func(a: int) -> List[int]:</mark></pre>
可呈现HTML高亮。
Panddoc能否在无需将所有```python块转换为pre
标签的情况下渲染HTML焦点?
答案 0 :(得分:3)
否,默认情况下不是。 Pandoc应该如何知道<mark>
不是您的代码的一部分?
但是,您可以编写一个与每个代码块都匹配的pandoc filter并将其转换为原始html块。诸如此类(未经测试):
function CodeBlock(elem)
html = "<pre>" .. elem.text .. "</pre>"
return pandoc.RawBlock("html", html)
end
请注意,您必须确保代码块中没有其他未转义的HTML。
更新
如果您还希望突出显示语法,则可能要尝试pandoc-emphasize-code filter。
答案 1 :(得分:1)
如果您将始终标记整行,则可以使用CSS进行标记。
应该为代码块指定一个ID,以使其更易于定位
``` {#types-demo .python}
def func(a: int) -> List[int]:
return [a]
```
要突出显示第一行,请将其包括在文档中:
```{=html}
<style>
#types-demo-1 {
background-color: #ff0;
}
</style>
```
语法突出显示应该继续起作用。