在 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 生成上面的示例。
我正在尝试使用 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 生成上面的示例。