我正在python中使用markdown库在我的flask应用程序中显示一些markdown。 在输出显示期间出现错误,因为它显示的是markdown内容而未将其转换为HTML。
这是我的python代码。
import markdown
from flask import Flask
#import some other libraries
@app.route('/md')
def md():
content = """
<h1>Hello</h1>
Chapter
=======
Section
-------
* Item 1
* Item 2
**Ishaan**
"""
content = Markup(markdown.markdown(content))
return render_template('md.html', **locals())
这是我的html代码。
<html>
<head>
<title>Markdown Snippet</title>
</head>
<body>
{{ content }}
</body>
</html>
我正在遵循here
中的代码我知道我正在犯一些错误,但是如果有人帮助我,我将非常感激。 预先感谢。
答案 0 :(得分:1)
确定您的Markdown行。
Python三引号内的所有内容均由Python逐字解释。包括缩进。因此,传递给Markdown的文本缩进了一层,从而使Markdown将整个文档解释为一个代码块。删除缩进,Markdown将正确识别文本:
@app.route('/md')
def md():
content = """
<h1>Hello</h1>
Chapter
=======
Section
-------
* Item 1
* Item 2
**Ishaan**
"""
请注意,您要从中复制的示例也不会缩进用三引号引起来的文本。当然,这会使您的Python代码可读性降低。因此,Python标准库包含textwrap.dedent()函数,该函数将以编程方式删除缩进:
from textwrap import dedent
@app.route('/md')
def md():
content = """
<h1>Hello</h1>
Chapter
=======
Section
-------
* Item 1
* Item 2
**Ishaan**
"""
content = Markup(markdown.markdown(dedent(content))) # <= dedent here
请注意,content
在传递给Markdown之前先通过dedent
传递。