【问题标题】:Customizing GFM markdown output in Pandoc在 Pandoc 中自定义 GFM 降价输出
【发布时间】:2021-06-09 15:43:31
【问题描述】:

我正在尝试使用 Pandoc 将一些 .rst 文件转换为 .md(GitHub 风格的降价)。

我想使用 ### 而不是 ===--- 用于标题和子标题。我还希望代码示例位于简单的代码围栏中,而不是带有块引号。

如果我在名为rst.rst 的文件中的左侧有 .rst 示例,我通过运行 pandoc rst.rst -t gfm 获得右侧的降价 - 它使用“错误”标题样式并在代码示例中添加块引用.

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

【问题讨论】:

    标签: markdown pandoc restructuredtext


    【解决方案1】:

    要强制使用 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 来生成上面的示例。

    【讨论】:

    • 感谢您提供的信息 - 非常有帮助!我使用的是相同的版本,但我必须添加 -f rst - 我认为 pandoc 会自动从 .rst 扩展中获取它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多