允许为鹈鹕内容定义自定义元数据解析器
pelican-metadataparsing的Python项目详细描述
用于Pelican的插件 允许轻松定义自定义元数据分析器。
用法
更新pelicanconf.py:
将metadataparsing添加到PLUGINS。
您应该在任何影响插件的元数据之前添加它。
PLUGINS=[...,'metadataparsing',...]
通过^{tt4}定义自定义元数据解析器$ 设置:
METADATA_PARSERS={"<metadata-field-name1>":<functionparser1(x)>,"<metadata-field-name2>":<functionparser2(x)>}
page、article或^{tt7}的对应字段$ 对象将具有从相应的解析器返回的值。 功能。
示例
库元数据
pelicanconf.py:
importcollectionsimportsixGalleryItem=collections.namedtuple("GalleryItem",["url","description"])defparse_gallery(string):ifstringisNoneornotisinstance(string,collections.Iterable):returnNoneifnotisinstance(string,six.string_types):string='\n'.join(string)items=[]forlineinstring.split('\n'):ifnotline:continueparts=line.split("||")url=parts[0].strip()iflen(parts)==1:description=Noneelse:description=parts[1].strip()items.append(GalleryItem(url,description))returnitemsMETADATA_PARSERS={"Gallery":parse_gallery}
主题:
{% if article.gallery %} <divclass="article-gallery"><h3>Gallery:</h3><ul> {% for image in article.gallery %} <li>{{ colorbox(image.url, image.description) }}</li> {% endfor %} </ul></div> {% endif %}
多行元数据到简单字符串
importcollectionsimportsixdefparse_description(string):ifstringisNoneorisinstance(string,six.string_types):returnstringifisinstance(string,collections.Iterable):string=" ".join(string)returnstringMETADATA_PARSERS={"Description":parse_description}
对于工作示例,请检查my site和my site’s source code。