如何使用 Pelican 格式化标题文本?
How do I format title text using Pelican?
我正在使用 Pelican 和 Markdown。我将博客文章创建为 foo.md
文件,如下所示:
Title: Light, by Kelly Link
Date: 2015-09-07 21:18
Blah blah ...
我希望标题中的一个词是斜体,但是我不能在Title:
字段中使用markdown(如果我写*Light*, by Kelly Link
它是按字面解释的。我是否必须更改主题为了做到这一点?
因此,我认为 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
的一部分)。基于此,看起来您需要做的就是确保您的 FORMATTED_FIELDS
设置中有 title
。
Thanks, quite helpful! I did this, but now for some reason the <p></p>
that Pelican wraps the formatted text in has an enormous margin. – Eli Rose Sep 8 '15 at 2:26
您通常可以通过将主题 html 页面中的 title
变量修改为 title|striptags
来避免 <p></p>
换行。这解决了 Typogrify 有时会产生的其他几个问题(例如标题中的 all-caps 部分)。
例如:
{% for p in PAGES %}
<li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title|striptags }}</a></li>
我正在使用 Pelican 和 Markdown。我将博客文章创建为 foo.md
文件,如下所示:
Title: Light, by Kelly Link
Date: 2015-09-07 21:18
Blah blah ...
我希望标题中的一个词是斜体,但是我不能在Title:
字段中使用markdown(如果我写*Light*, by Kelly Link
它是按字面解释的。我是否必须更改主题为了做到这一点?
因此,我认为 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
的一部分)。基于此,看起来您需要做的就是确保您的 FORMATTED_FIELDS
设置中有 title
。
Thanks, quite helpful! I did this, but now for some reason the
<p></p>
that Pelican wraps the formatted text in has an enormous margin. – Eli Rose Sep 8 '15 at 2:26
您通常可以通过将主题 html 页面中的 title
变量修改为 title|striptags
来避免 <p></p>
换行。这解决了 Typogrify 有时会产生的其他几个问题(例如标题中的 all-caps 部分)。
例如:
{% for p in PAGES %}
<li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title|striptags }}</a></li>