跳转到主要内容

为Pelican提供的整洁主题。

项目描述

Plumage, a Pelican theme

Plumage是为Pelican(一个静态网站生成器)提供的整洁主题。

我最初创建这个主题是为了我的博客https://kevin.deldycke.com,但现在它足够通用,任何人都可以使用。

特性

  • 标准Pelican视图

    Plumage article view Plumage categories view Plumage tiered tag list view
    文章 分类 分层标签列表
    Plumage archive view Plumage tag view Plumage authors view
    可折叠年度存档 标记文章 作者
    Plumage archive view
    多角度文章浏览
  • 项目模板

    Plumage projects: code showcase Plumage projects: videos showcase Plumage projects: themes showcase
    代码展示(来源 视频展示(来源 主题展示(来源
  • 基于 Bootstrap v5

  • 代码语法高亮,支持 30+ 种样式

  • 全站静态搜索通过 Stork 实现。

  • 文章中的裸YouTube链接会被渲染为嵌入视频。

    Plumage YouTube link

  • 直接链接到GitHub上编辑文章。

    Plumage GitHub edit link

  • 图像上的放大镜覆盖和缩放。

    Plumage image magnifying glass Plumage image zoom

  • 外部资产(Bootstrap、Jquery等)使用 CDNjs

  • Disqus集成。

    Plumage disqus comments

插件

Plumage内置了对以下插件和扩展的支持

插件名称 类型 状态 备注
pelican-image-process Pelican插件 可选 嵌入一个修复外部图像解析的hack
pelican-neighbors Pelican插件 可选
pelican-related-posts Pelican插件 可选
pelican-similar-posts Pelican插件 可选
pelican-search Pelican插件 可选
pelican-webassets Pelican插件 必需
markdown.extensions.admonition Markdown扩展 可选 将警告重新样式化为 警报
markdown.extensions.codehilite Markdown扩展 可选 使用Pygment样式为高亮代码进行样式化。
markdown.extensions.toc Markdown扩展 可选 为文章的副标题添加永久链接锚点。
pymdownx.highlight Markdown扩展 可选 使用Pygment样式为高亮代码进行样式化。
typogrify Pelican内置 可选 样式化和号。

安装

使用此GitHub仓库的 main 分支安装此主题。

如果您已经使用 poetry 来管理Pelican项目的依赖关系,只需运行

poetry add git+https://github.com/kdeldycke/plumage#main

或者,可以手动在 pyproject.toml 文件的 [tool.poetry.dependencies] 部分添加以下行。

plumage = {git = "https://github.com/kdeldycke/plumage", rev = "main"}

一旦添加,运行 poetry update 以反映此新依赖项。

注意:如果您在此项目中尚未使用 poetry,则在添加 plumage 之前您需要这样做。您可以通过首先在系统上 安装 poetry 并然后在项目文件夹中运行 poetry init 来完成此操作。

然后,一旦安装了 plumage 模块,请更新您的 pelicanconf.py 文件以引用该模块

import plumage

THEME = plumage.get_path()

首次运行时,Plumage将尝试通过 npm CLI安装Node.js包依赖项

$ poetry run pelican --verbose ./content
(…)
WARNING: postcss CLI not found.
-> Install Plumage's Node.js dependencies from (…)/plumage/package.json:
  |   {
  |     "name": "plumage-webassets-pipeline",
  |     "description": "Plumage dependencies for the webassets compilation pipeline.",
  |     "dependencies": {
  |       "postcss-cli": "^8.3.1"
  |     }
  |   }
  |

up to date, audited 96 packages in 984ms

found 0 vulnerabilities
-> postcss CLI found at (…)/plumage/node_modules/.bin/postcss
(…)

设置

可以通过在 pelicanconf.py 文件中添加以下可选参数来自定义Plumage

设置名称 默认值 描述
ARTICLE_EDIT_LINK 为每篇文章生成一个编辑链接。可以使用 %(slug)s 在链接中包含动态文章的slug。
CODE_STYLE "monokai" Pygments的样式ID。从 poetry run pygmentize -L styles 中选择一个。
COPYRIGHT 添加到页脚第三列的附加版权声明。
DISCLAIMER 覆盖在页脚第四列显示的免责声明。
DISQUS_SITENAME Pelican可以处理Disqus评论。在此处指定Disqus sitename标识符。
FAVICON_LINKS True Google的favicons webservice获取链接图标。
GOOGLE_ANALYTICS 设置为 UA-XXXXXX-Y 属性的跟踪ID以激活Google Analytics。
LEFT_SIDEBAR 作为纯HTML内容放入左侧边栏。
LINKS_WIDGET_NAME "Links" 允许覆盖链接小部件的名称。
LINKS 在页脚第二列显示的链接的标题和URL的元组列表。
MANUAL_LINKS 启用此功能时,您必须将链接(在LINKS & SOCIAL设置中)不再作为元组传递,而是作为列表,其中每个条目都按您喜欢的格式进行格式化
MENUITEMS 用于在主菜单开头显示的附加菜单项的元组列表(标题,URL)。
RIGHT_SIDEBAR 右侧栏中应直接放置的HTML内容。
SITESUBTITLE 显示在页眉中的副标题。
SITE_THUMBNAIL_TEXT 显示在网站缩略图后面的文本。
SITE_THUMBNAIL 显示在页眉中的网站缩略图URL。应至少为80x80像素的方形图像。
SOCIAL_WIDGET_NAME "社交" 允许覆盖“社交”小部件的名称。
SOCIAL 显示在页脚第一列中的元组列表(标题,URL)。
STORK_SEARCH False 激活Stork静态搜索引擎。需要官方Pelican的search插件

这些参数中的大多数与notmyidea的参数类似(Pelican的默认主题)。有关使用示例,请参阅我的自己的pelicanconf.py

主题也对以下标准Pelican参数敏感。

  • ARCHIVES_SAVE_AS
  • AUTHOR
  • AUTHOR_SAVE_AS
  • AUTHORS_SAVE_AS
  • CATEGORIES_SAVE_AS
  • CATEGORY_FEED_ATOM
  • CATEGORY_FEED_RSS
  • DEFAULT_LANG
  • DEFAULT_PAGINATION
  • DISPLAY_PAGES_ON_MENU
  • DISPLAY_CATEGORIES_ON_MENU
  • FEED_ALL_ATOM
  • FEED_ALL_RSS
  • FEED_ATOM
  • FEED_DOMAIN
  • FEED_RSS
  • PAGINATION_PATTERNS
  • SITENAME
  • SITEURL
  • TAG_FEED_ATOM
  • TAG_FEED_RSS
  • TAGS_SAVE_AS

代码语法高亮

有两种选择,都依赖于Pygments语法高亮器,共享大多数功能,有一些差异。

功能 CodeHilite 高亮
清洁复制和粘贴
行号
右对齐数字
行起始偏移
多行高亮
第N行高亮
文件名
长行换行
长行溢出(滚动条)
固定左侧空白
行锚点 Pygments中工作

Python Markdown CodeHilite

只需将此配置添加到pelicanconf.py,即可允许我们向Pygments的HTML格式化器传递额外选项。

MARKDOWN = {
    "extension_configs": {
        ()
        "markdown.extensions.codehilite": {
            "css_class": "codehilite",  # Default
            "linenums": True,
            "linenos": "inline",
            "linespans": "coderow",
            "lineanchors": "L",
            "anchorlinenos": True,
            "wrapcode": True,
        },
        "markdown.extensions.fenced_code": {},
        ()
    },
}

这将渲染为

```{.shell-session hl_lines="8 11" linenostart="5" linenospecial="3" filename="~/code/foo.log"}
$ cat ./example.markdown
This is the content of the file:
→ java
→ rust
→ haskell
→ javascript

$ cat ./addendum.txt
This is extra content.

$ find ./ -iname "*.markdown" -print -exec bash -c 'cat ./addendum.txt >> "{}"' \;
./example.markdown
$ cat ./example.markdown
This is the content of the file:
→ java
→ rust
→ haskell
→ javascript

This is extra content.

```

成为这个

Plumage Python Markdown CodeHilite rendering

PyMdown Extensions' Highlight

只需将此配置添加到您的pelicanconf.py

MARKDOWN = {
    "extension_configs": {
        ()
        "pymdownx.highlight": {
            "linenums": True,
            "linenums_style": "pymdownx-inline",
        },
        "pymdownx.superfences": {},
        ()
    },
}

这将渲染为

```{.shell-session hl_lines="8 11" linenums="5 1 3" filename="~/code/foo.log"}
$ cat ./example.markdown
This is the content of the file:
→ java
→ rust
→ haskell
→ javascript

$ cat ./addendum.txt
This is extra content.

$ find ./ -iname "*.markdown" -print -exec bash -c 'cat ./addendum.txt >> "{}"' \;
./example.markdown
$ cat ./example.markdown
This is the content of the file:
→ java
→ rust
→ haskell
→ javascript

This is extra content.

```

成为这个

Plumage PyMdown Extensions' Highlight rendering

CSS自定义

TODO:记录以下所有类型自定义

通过pyquery在生成时转换Python代码

使用extra_css

自定义main.scss

常见问题解答

我如何禁用图像的缩放功能?

默认情况下,文章中的所有图像都是可缩放的。您可以通过添加一个noZoom CSS类来按图像禁用放大镜。因此,您必须使用以下Markdown代码

![Image title](/folder/image.png)

而不是以下模板来禁用图像的缩放功能

![Image title](/folder/image.png){: .noZoom}

为什么搜索不起作用?

官方Pelican的search插件需要安装。

TODO:如果插件存在,则自动激活搜索字段。

许可证

本软件许可协议为GNU通用公共许可证第2版或更新版(GPLv2+)

版权(C)2012-2020 Kevin Deldycke贡献者

第三方资产

主题嵌入了一些外部软件、脚本、库和艺术品的副本

jQuery MGlass v1.1
Copyright (c) 2012 Younès El Biache
Distributed under a MIT license
Source: https://github.com/younes0/jQuery-MGlass
Fabric (Plaid)
Copyright (c) 2012 James Basoo
Distributed under a Creative Commons Attribution-ShareAlike 3.0 Unported license
Source: https://subtlepatterns.com/fabric-plaid/
Cream paper
Copyright (c) 2012 Devin Holmes
Distributed under a Creative Commons Attribution-ShareAlike 3.0 Unported license
Source: https://subtlepatterns.com/cream-paper/
Feather-alt icon v5.1.0
Copyright (c) 2020 Font Awesome project
Distributed under a Creative Commons Attribution 4.0 International license
Source: https://fontawesome.com/icons/feather-alt?style=solid
Macro shot of White Feather
Source: https://unsplash.com/photos/Sw7f58YJbc0

项目详情


下载文件

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

源分发

plumage-4.0.0.tar.gz (83.8 kB 查看散列值)

上传时间:

构建分发

plumage-4.0.0-py3-none-any.whl (114.9 kB 查看散列值)

上传时间: Python 3

支持