跳转到主要内容

启用嵌套分类和每篇文章多个分类

项目描述

more-categories

Build Status

此插件为每篇文章多个分类和嵌套分类提供了支持。它需要Pelican 4.0.0或更高版本。

多个分类

要指明文章属于多个分类,请使用逗号分隔的字符串

Category: foo, bar, bazz

这将把文章添加到分类 foobarbazz

模板

现有主题如果使用 article.category,则只会显示这些分类中的第一个,即 foo。此插件添加了 article.categories,您可以遍历它。为了在主题中适应此插件,无论它是否存在,请使用

{% for cat in article.categories or [article.category] %}
    <a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a>{{ ', ' if not loop.last }}
{% endfor %}

嵌套分类

(这是对 subcategory 插件的重新实现。)

要表示一个分类是另一个分类的子分类,请使用斜杠分隔的字符串

Category: foo/bar/bazz

这将把文章添加到分类 foo/bar/bazzfoo/barfoo 中。

模板

现有使用 article.category 的主题将显示这些分类中最具体的全路径,即 foo/bar/bazz。对于任何分类 cat,此插件添加 cat.shortname,在这个例子中是 bazzcat.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.shortnamecategory.parentcategory.ancestors 也可以在分类模板中使用。

此外,此插件还添加了 category.children:一个包含具有 category 作为父级的分类的 list

{% for child in category.children %}
    <a href="{{ SITEURL }}/{{child.url}}">{{child.shortname|capitalize}}</a>
{% endfor %}

如果您需要所有后代而不是仅直接子代,可以使用后代的 listcategory.descendents

别名

分类的别名是通过递归地将分类及其祖先的短名称转换为别名并保留斜杠生成的。

slug-of-(foo/bar/baz) := slug-of-foo/slug-of-bar/slug-of-baz

分类文件夹

要使用目录结构指定分类,您可以配置 PATH_METADATA 以将文章路径提取到 category 元数据中。以下设置将使用整个结构

PATH_METADATA = '(?P<category>.*)/.*'

如果您将所有文章存储在单个 articles/ 文件夹中,并且想要忽略此目的,请使用

PATH_METADATA = 'articles/(?P<category>.*)/.*'

模板中的分类

所有分类及其对应文章的列表 categories,在上下文中可用,可以在模板中使用(例如,制作可用分类的菜单),按字典顺序排序,因此分类始终跟随其父分类

aba
aba/dat
abaala

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

pelican-more-categories-0.1.0.tar.gz (17.2 kB 查看哈希值)

上传时间

构建分布

pelican_more_categories-0.1.0-py3-none-any.whl (17.9 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面