Flask-Markdown / Flask-Misaka过滤器包装前标记中的Markdown

时间:2018-02-22 19:01:34

标签: python flask markdown

我在使用我的Flask应用程序获得降价时遇到问题。我已经通过pip导入了降价扩展。我有一个问题,jinja2 {%filter markdown%}表现得很奇怪。它将我的降价包装在预标签中。但是,如果我直接将md文本传递给模板{{'#text'| markdown}}它会正确解析字符串。我猜测降价过滤器没有传递给Jinja,但我不知道如何评估或解决这个问题。有没有其他人遇到这个?

FLASK

from flask_mikasa import Mikasa
app = Flask(__name__)
Misaka(app)

@app.route('/')
def index():
    index_content = Index().get(Index.active == 1)
    return render_template('index.html',  index_content=index_content)

MD IN INDEX.HTML

{% filter markdown %}
        <h1>Page for: {{ name }}</h1>

        ![Company Logo][logo]
        # {{ index_content.main_title }}
        {{ index_content.main_text }}

        ## {{ index_content.column1_title }}
        {{ index_content.column1_text }}
        [Read More](http://google.com)

        ## {{ index_content.column2_title }}
        {{ index_content.column2_text }}
        [Read More](http://google.com)

        ## {{ index_content.column3_title }}
        {{ index_content.column3_text }}
        [Read More](http://google.com)

        [logo]:{{ url_for('static', filename='logo.jpg')}}
{% endfilter %}

输出:

html: opening_pre_tag
html: opening_code_tag
&lt;h1&gt;Page for: &lt;/h1&gt;

    ![Company Logo][logo]
    # Header


    ## Content Title 1
    Lorem Ipsum
    [Read More](http://google.com)

    ## Content Title 2
    lorem ipsum
    [Read More](http://google.com)

    ## Content Title 3
    Lorem ipsum... 
    [Read More](http://google.com)

    [logo]:/static/logo.jpg
html: closing_code_tag
html: closing_pre_tag

无论其

{{ '#title' | markdown }}

将输出

<h1>title</h1>

1 个答案:

答案 0 :(得分:1)

好的,所以{%filter markdown%}需要与降价内容位于同一标签行中。轻松修复但令人沮丧的过程。

{% filter markdown %}
# Title
content
List: 
* a
* b
* c
{% endfilter %)

VS

{% filter markdown %}
    # Title
    content
    List: 
    * a
    * b
    * c
{% endfilter %}