为每个项目启用嵌套类别和多个类别
pelican-more-categories的Python项目详细描述
更多类别
这个插件增加了对每个文章的多个类别和嵌套的支持 类别。它需要鹈鹕4.0.0或更新版本。在
多类别
要指示一个项目属于多个类别,请使用 逗号分隔字符串:
Category: foo, bar, bazz
这将把文章添加到类别foo
、bar
和{
模板
使用article.category
的现有主题将只显示
这些类别,foo
。此插件添加article.categories
,您可以
而是循环。在一个主题中容纳这个插件是否存在
无论是否使用:
嵌套类别
(这是subcategory
插件的重新实现。)
若要指示某个类别是另一个类别的子类别,请使用 斜线分隔字符串:
Category: foo/bar/bazz
这将把文章添加到foo/bar/bazz
,foo/bar
和
foo
。在
模板
使用article.category
的现有主题将显示指向
这些类别中最具体的,foo/bar/bazz
。对于任何类别cat
,此
插件添加cat.shortname
,在本例中是bazz
,cat.parent
,它
在本例中是类别foo/bar
,和cat.ancestors
,它是
类别的祖先,以类别本身结束。例如,到
在文章页面中还包括指向每个祖先类别的链接
如果此插件存在,请使用:
{% for cat in article.category.ancestors or [article.category] %}
<a href="{{ SITEURL }}/{{ cat.url }}">{{ cat.shortname or cat }}</a>{{ '/' if not loop.last }}
{% endfor %}
同样,category.shortname
、category.parent
和{
另外,这个插件添加了category.children
:一个list
类别
以category
为父级。在
{% for child in category.children %}
<a href="{{ SITEURL }}/{{child.url}}">{{child.shortname|capitalize}}</a>
{% endfor %}
如果您需要所有的子代,而不仅仅是直接的子代,您可以使用子代的list
:category.descendents
。在
弹头
类别的slug是通过将 类别及其祖先,以及保留斜杠:
slug-of-(foo/bar/baz) := slug-of-foo/slug-of-bar/slug-of-baz
分类文件夹
要使用目录结构指定类别,可以配置
PATH_METADATA
将项目路径提取到{
PATH_METADATA = '(?P<category>.*)/.*'
如果您想将所有文章存储在一个articles/
文件夹中
为此,请使用:
PATH_METADATA = 'articles/(?P<category>.*)/.*'
模板中的类别
所有类别对的列表categories
及其对应的
文章,在上下文中可用,可以在模板中使用(例如。
要制作可用类别的菜单),则按字典顺序排列,因此
类别始终跟随其父类别:
aba
aba/dat
abaala
- 项目
标签: