Ошибка при конвертации из уценки в редактор в колбе - PullRequest
0 голосов
/ 04 ноября 2018

Я использую библиотеку уценок в Python для отображения некоторой уценки в моем приложении фляги. Я получаю сообщение об ошибке во время отображения выходных данных, поскольку они отображают содержимое уценки без преобразования его в 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>

Я следую коду от здесь

Я знаю, что совершаю грубую ошибку, но буду благодарен, если кто-нибудь мне поможет. Заранее спасибо.

1 Ответ

0 голосов
/ 05 ноября 2018

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...