3

我正在使用带有 Markdown 的鹈鹕。我将博客文章创建为foo.md文件,如下所示:

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

Blah blah ...

我希望标题中的一个词用斜体显示,但我不能在该Title:字段中使用降价(如果我写*Light*, by Kelly Link它是按字面解释的。我是否必须更改主题才能做到这一点?

4

2 回答 2

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)。基于此,看起来您需要做的就是确保您titleFORMATTED_FIELDS设置中拥有。

于 2015-09-08T01:59:06.553 回答
2

谢谢,很有帮助!我这样做了,但现在由于某种原因<p></p>,Pelican 将格式化文本包装在其中有很大的余量。– Eli Rose 2015 年 9 月 8 日 2:26

您通常可以通过将主题的 html 页面中的变量<p></p>修改为. 这解决了 Typogrify 有时会产生的其他几个问题(例如标题中的全大写部分)。titletitle|striptags

例如:

{% for p in PAGES %}
    <li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title|striptags }}</a></li>
于 2016-08-21T02:38:58.480 回答