Dedent ваши строки уценки.
Все, что находится в тройных кавычках 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
передается через dedent
до передачи в Markdown.