在 Pandoc 中自定义 GFM markdown 输出

Customizing GFM markdown output in Pandoc

我正在尝试使用 Pandoc 将一些 .rst 文件转换为 .md(GitHub flavored markdown)。

我想对 header 和 subheader 使用 ### 而不是 ===---。我还希望代码示例位于简单的代码围栏中,而不是块引号。

如果我在名为 rst.rst 的文件左侧有 .rst 示例,我会通过 运行 pandoc rst.rst -t gfm 在右侧获得降价 - 它使用 'wrong' header 样式并在代码示例中添加块引号。

我该如何解决这个问题?我需要编写自定义 lua 过滤器吗?

要强制使用 ATX 样式接头,请使用 --markdown-headings=atx commandline option

pandoc rst.rst -t gfm --markdown-headings=atx

为避免块引用,请从您的第一个代码块中删除缩进。请注意,blockquote 是通过在 RestructuredText 中缩进一段文本来表示的。因此,您的代码块嵌套在您的第一个文档中的块引用中,并且 Pandoc 在 Markdown 输出中正确地复制了该文档结构。

$ echo "
> Header
> ======
>
> some text
>
> Subheader
> ---------
>
> A code sample
>
> .. sourcecode:: python3
>     :linenos:
>
>     class Hand(Deck):
>         pass
>
> More text" | pandoc -f rst -t gfm --markdown-headings=atx
# Header

some text

## Subheader

A code sample

``` python3
class Hand(Deck):
    pass
```

More text

请注意,我在没有指定 --markdown-headings 选项的情况下得到了相同的结果,这是有道理的,因为 ATX 被记录为默认值。也许您使用的是旧版本的 Pandoc,在这种情况下,您可能需要使用现已弃用的 --atx-headers 代替。我使用 Pandoc 版本 2.11.4 生成上面的示例。