【问题标题】:Applying formatting inside a pandoc code block在 pandoc 代码块中应用格式
【发布时间】:2017-11-26 23:30:39
【问题描述】:

有没有办法在 pandoc markdown 的代码块内应用格式?例如,考虑以下情况:

```cpp
void foo() noexcept(*see below*);
```

我希望代码块内的“见下文”部分以斜体显示 - 但是 * 字符会逐字显示在结果中。我也尝试过使用<i> HTML 标签,结果相同。

是否有不需要对生成的文档进行后处理的解决方案?

【问题讨论】:

  • 你总是可以在 Markdown 中编写原始 HTML ......但我无法想象 HTML 能够代表你在这里的建议......如果它在 codepre 里面,那么你不能斜体它的某些部分...
  • 试试`*`see below`*``**`see below`**` 看看是否有帮助
  • HTML 当然可以在预格式化块中包含格式:<pre>cpp void foo() noexcept(<i>see below</i>);</pre>

标签: markdown pandoc


【解决方案1】:

您无法在此任意级别控制代码块内的格式,您可以自行决定哪些部分要斜体化,哪些不应该斜体化。代码块是代码块,这意味着内容是逐字呈现的。

但是,您可以将语法高亮显示应用到代码块。语法高亮器具有一定的编程语言知识,可以识别关键字和惯用部分,以将自己的规则应用于这些内部代码块。

要查看哪些语法高亮样式可用于您的 Pandoc 版本,请运行:

pandoc --list-highlight-styles

在这个系统上,荧光笔是:espresso, haddock, kate, monochrome, pygments, tango, zenburn。 要查看荧光笔可以处理哪些语言,请运行:

pandoc --list-highlight-languages

我的 Pandoc 列出了 141 种语言。 cpp 就是其中之一。

我从您的代码 sn-p(不带 **)为所有样式创建了示例结果,并将它们放入下面的 JPEG 中。从上到下:浓缩咖啡、黑线鳕、凯特、单色、pygments、探戈、zenburn。如您所见,您想要的两个词没有突出显示,但 CPP 的一些关键词和关键语法元素是:

【讨论】:

    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多