Как отформатировать текст заголовка с помощью Pelican?


Я использую Pelican с Markdown. Я создаю сообщения в блоге в виде файлов foo.md, которые выглядят следующим образом:

Title: Light, by Kelly Link
Date: 2015-09-07 21:18

Blah blah ...
Я бы хотел, чтобы слово в заголовке было выделено курсивом, но я не могу использовать markdown в поле Title: (Если я пишу *Light*, by Kelly Link, это интерпретируется буквально. Должен ли я изменить тему, чтобы сделать это?
2 2

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 в 2: 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>