markdown2未添加<pre> to code snippets

时间:2017-07-12 07:55:54

标签: python markdown

Usually code snippets wrap the code tag with a pre tag. Looks like markdown is just using a p tag, is this normal?

from markdown2 import Markdown
markdowner = Markdown()
markdowner.convert("```\nthis is code\n```")
u'<p><code>\nthis is code\n</code></p>\n'

Even this website's adding pre tags. How do I add it to markdown?

2 个答案:

答案 0 :(得分:1)

  

这是正常的吗?

是的,受防护的代码块不是标准的Markdown(只有indented code blocks)。但是,inline code spans可以使用任意数量的反引号进行删除(只要打开一个结束的分隔符匹配)。因此,解析器正确地将您的输入解析为内联代码范围,该范围由code标记内的p标记组成。当然,如果您插入了任何空白行,那么输出将是多个段落而没有任何代码跨度(因为开始和结束的分隔符将在单独的段落中)。

  

如何将其添加到markdown?

由于受防护的代码块是非标准Markdown,因此通常需要在支持它们的解析器中启用它们。每个解析器都不同,因此用户应查阅文档以获取其选择的解析器。另一个答案已经涵盖了如何在OP使用的特定解析器中启用它们。

答案 1 :(得分:0)

结果显示markdown2只会将前缀添加到四个空格缩进的内容中。 要添加到上面的示例,请使用:

markdown2.markdown(text, extras=["fenced-code-blocks"])

Reference