我使用Pelican和Markdown。我将博客文章创建为foo.md
个文件,如下所示:
Title: Light, by Kelly Link
Date: 2015-09-07 21:18
Blah blah ...
我希望标题中的单词用斜体字表示,但我不能在Title:
字段中使用markdown(如果我写*Light*, by Kelly Link
它的字面解释。为了做到这一点,我必须改变主题吗?
答案 0 :(得分:4)
因此,我相信,Pelican中相关的代码部分来自readers.py
(从第183行开始):
def _parse_metadata(self, meta):
"""Return the dict containing document metadata"""
formatted_fields = self.settings['FORMATTED_FIELDS']
output = {}
for name, value in meta.items():
name = name.lower()
if name in formatted_fields:
# handle summary metadata as markdown
# summary metadata is special case and join all list values
summary_values = "\n".join(value)
# reset the markdown instance to clear any state
self._md.reset()
summary = self._md.convert(summary_values)
output[name] = self.process_metadata(name, summary)
简而言之,Pelican正在考虑是否应该在编写Markdown字段之前对其进行解析(title
是meta
dict
的一部分)。基于此,看起来您需要做的就是确保title
设置中有FORMATTED_FIELDS
。
答案 1 :(得分:2)
谢谢,非常有帮助!我这样做了,但是现在由于某种原因,Pelican包装格式化文本的
<p></p>
有很大的余地。 - Eli Rose 9月8日&15; 15:2:26
您通常可以通过将主题的html页面中的<p></p>
变量修改为title
来避免title|striptags
换行。这解决了Typogrify有时会创建的其他几个问题(例如标题中的全部大写部分)。
例如:
{% for p in PAGES %}
<li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title|striptags }}</a></li>