Как мне отформатировать текст заголовка с помощью Pelican?
Я использую Пеликан с Markdown. Я создаю сообщения в блоге как foo.md
файлы, которые выглядят так:
Title: Light, by Kelly Link
Date: 2015-09-07 21:18
Blah blah ...
Мне бы хотелось, чтобы слово в названии было выделено курсивом, но я не могу использовать уценку в Title:
поле (если я напишу *Light*, by Kelly Link
это интерпретируется буквально. Нужно ли менять тему, чтобы сделать это?
2 ответа
Итак, соответствующий раздел кода на 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
установка.
Спасибо, очень полезно! Я сделал это, но теперь по какой-то причине
<p></p>
у того, что Пеликан оборачивает отформатированный текст, есть огромный запас. - Эли Роуз 8 сентября 15:26
Вы можете часто избегать <p></p>
упаковка путем внесения изменений в title
переменная в HTML-страницах вашей темы для title|striptags
, Это решает несколько других проблем (например, разделы с заглавными буквами в заголовках), которые иногда создает Typogrify.
Например:
{% for p in PAGES %}
<li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title|striptags }}</a></li>