gpt4 book ai didi

python - 在 Flask 应用程序中将图像与 Markdown 混合

转载 作者:行者123 更新时间:2023-11-28 16:39:21 26 4
gpt4 key购买 nike

我正在使用 Flask-FlatPages 构建一个静态站点(然后使用 Frozen-Flask)。

在我的页面中,我想将文本与图像混合在一起。这是执行此操作的天真的方法:

## Look at *this* image:
<img src="{{ url_for('static', filename='images/image.png') }}">
Hmm, it does **not** seem to load.

{{ template tag }} 没有被解析,因为 FlatPages 通过 markdown 而不是通过 Flask 的模板系统运行页面(如果我没记错的话)。

如何获得正确的图像链接?

相关代码

#app.py
from flask import Flask, render_template
from flask_flatpages import FlatPages

app = Flask(__name__)
pages = FlatPages(app)

@app.route('/tip/<path:path>')
def tip_detail(path):
tip = pages.get_or_404(path)
template = tip.meta.get('template', 'tip_detail.html')
return render_template(template, tip=tip)

#tip_detail.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>{{ tip.meta.title }}</h1>
{{ tip }}
</body>
</html>

最佳答案

通过 https://github.com/naringas 留下的评论解决在https://github.com/SimonSapin/Flask-FlatPages/pull/1

事实证明,Flask-FlatPages 不呈现 Jinja 模板标签。但是它确实有一个选项来设置自定义 HTML 渲染器。在呈现 Markdown 之前使用它首先呈现 Jinja 模板。

#add these lines to app.py
def prerender_jinja(text):
prerendered_body = render_template_string(Markup(text))
return pygmented_markdown(prerendered_body)

app.config['FLATPAGES_HTML_RENDERER'] = prerender_jinja

关于python - 在 Flask 应用程序中将图像与 Markdown 混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com