我使用例如Markdown语法在鹈鹕文章中定义变量:
Motto: _"Paranoia is a virtue"_ Anonymous, 1984
然后我想在模板(例如article.html)中使用它作为:
{% if article.motto %}<p>{{ article.motto }}</p>{% endif %}
显然,我在HTML中获得了类似的内容:
<p>_"Paranoia is a virtue"_ Anonymous, 1984</p>
有没有办法处理变量(f.i.通过Jinja过滤器)以获得Markdown处理后的文本。如果结果应该是:
<p><i>"Paranoia is a virtue"</i> Anonymous, 1984</p>
答案 0 :(得分:2)
对于3.5,没有。 Markdown默认不处理元数据。但是,当前的开发版本包含一个新设置FORMATTED_FIELDS
。所以,等待3.6或从github安装dev-version。
当然,您也可以使用HTML而不是降价语法:
Motto: <i>"Paranoia is a virtue"</i> Anonymous, 1984
答案 1 :(得分:2)
将以下内容添加到var fs = require('fs')
var markdown = fs.readFileSync('./readme.md', 'utf8')
var MarkdownIt = require('markdown-it')
var md = new MarkdownIt()
var parsedMd = md.parse(markdown)
文件中,以定义Jinja过滤器,以便通过pelicanconf.py
传递变量:
markdown
然后你可以做
from markdown import Markdown
markdown = Markdown(extensions=['markdown.extensions.extra'])
def md(content, *args):
return markdown.convert(content)
JINJA_FILTERS = {
'md': md,
}
并且您的变量将被正确呈现。
答案 2 :(得分:0)
这可以解决这个问题吗?
node appname.js