Plumage is a clean and tidy theme for Pelican (a static site generator).
I initially created this theme for my blog, but it is now generic enough to be used by anyone.
-
Standard Pelican views:
Article Categories Tiered tag list Collapsable yearly archives Tagged articles Authors -
Projects template:
Code showcase (source) Videos showcase (source) Themes showcase (source) -
Based on Bootstrap v4.
-
Solarized code snippets via Pygments for syntax highlighting:
-
Site-wide static search via Tipue-search.
-
Bare YouTube links in articles gets rendered as embedded videos:
-
Direct link to edit articles on GitHub:
-
Magnifying glass overlays on images and zoom:
-
External assets (Bootstrap, Jquery, etc...) uses CDNjs .
-
Disqus integration:
Plumage has built-in support for the following plugins and extensions:
-
Pelican builtins:
typogrify
: style ampersands.
-
Pelican third-party plugins:
-
Markdown extensions:
markdown.extensions.admonition
: re-style admonitions into alerts.markdown.extensions.codehilite
: style highlighted code with Pygment style.markdown.extensions.toc
, adds permalink anchors to article's subtitles.pymdownx.emoji
: styleemojione
set for proper integration into text.pymdownx.highlight
: style highlighted code with Pygment style.
This package is available on PyPi, so
you can install the latest stable release and its dependencies with a simple
pip
call:
$ pip install plumage
Then, update your pelicanconf.py
file, with the module:
import plumage
THEME = plumage.get_path()
Plumage can be customized by adding these optionnal parameters to your
pelicanconf.py
file:
Setting name | Default value | Description |
---|---|---|
ARTICLE_EDIT_LINK |
Generate an edit link besides each article. Can use %(slug)s to include dynamic article's slug in the link. |
|
COPYRIGHT |
Additional copyright statement to add in the third column of the footer. | |
DISCLAIMER |
Overide the Disclaimer notice that gets displayed at the fourth column of the footer. | |
DISQUS_SITENAME |
Pelican can handle Disqus comments. Specify the Disqus sitename identifier here. | |
FAVICON_LINKS |
True |
Fetch link's icons from Google's favicons webservice. |
GOOGLE_ANALYTICS |
Set to UA-XXXXXX-Y Property's tracking ID to activate Google Analytics. |
|
LEFT_SIDEBAR |
HTML content to put as-is in the left sidebar. | |
LINKS_WIDGET_NAME |
"Links" |
Allows override of the name of the links widget. |
LINKS |
A list of tuples (Title, URL) for links to appear in the second column of the footer. | |
MANUAL_LINKS |
When enabling this, you must pass the links (in LINKS & SOCIAL settins) not as tuples anymore, but as list, where every entry is formatted as you like | |
MENUITEMS |
A list of tuples (Title, URL) for additional menu items to appear at the beginning of the main menu. | |
RIGHT_SIDEBAR |
HTML content to put as-is in the right sidebar. | |
SITESUBTITLE |
A subtitle to appear in the header. | |
SITE_THUMBNAIL_TEXT |
Text displayed behind site's thumbnail. | |
SITE_THUMBNAIL |
Site's thumbnail URL as displayed in the header. Should be a square image of at least 80x80 pixels. | |
SOCIAL_WIDGET_NAME |
"Social" |
Allows override of the name of the “social” widget. |
SOCIAL |
A list of tuples (Title, URL) to appear in the first columns of the footer. | |
TIPUE_SEARCH |
False |
Activate Tipue Search (javascript search engine) into the site. Requires the tipue_search plugin. |
Most of these parameters are similar to notmyidea
's
(Pelican's default
theme). For usage example, please have a look into my own pelicanconf.py
.
The theme is also sensible to this list of standard Pelican parameters :
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
TYPOGRIFY
How can I disable the zoom on images?
All images of an article are zoomable by default. You can deactivate the
magnifying glass per-image by adding a noZoom
CSS class. So instead of the
following Markdown code:
![Image title](/folder/image.png)
You have to use the following template to deactivate the zoom of an image:
![Image title](/folder/image.png){: .noZoom}
Why is the search not working?
Some plugins may need additional settings, for instance for tipue_search, after applying the standard options:
PLUGINS = ['tipue_search']
TIPUE_SEARCH = True
... you'll need to declare additional template file,
by either adding this line to your pelicanconf.py
:
TEMPLATE_PAGES = {
'search.html': 'search.html',
}
or using this technique.
This software is licensed under the GNU General Public License v2 or later (GPLv2+).
Copyright (C) 2012-2020 Kevin Deldycke and contributors. All Rights Reserved.
The theme embed copies of some external softwares, scripts, libraries and artworks:
Tipue Search v7.1
Copyright (c) 2019 Tipue
Distributed under a MIT license
Source: https://web.archive.org/web/20200703134724/https://www.tipue.com/search/tipuesearch.zip
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/