Skip to main content

Pelican plugin to add footnotes to articles and pages

Project description

Theme Configuration: A Plugin for Pelican

Build Status PyPI Version

This package provides a plugin for the Pelican static website generator and adds support for themes to adjust Pelican's configuration using the themeconf.py file located in the root directory of the theme.

Installation

This plugin can be installed via:

python -m pip install pelican-theme-config

Usage

Add theme_config to the list of plugins in the pelicanconf.py file, e.g.

PLUGINS = [ "theme_config" ]

From that point on, Pelican will try to load the themeconf.py from theme's directory.

Overview

This plugin allows theme authors to create more self-contained themes since everything that a theme requires can be configured within the theme itself:

  • themes can be shipped with their own plugins
  • themes can provide their static content (e.g. a theme that implements Google's PWA can provide manifest.json that should be put into the root of the website)
  • basically, authors could do almost anything :) since with this plugin theme gets control

The code is hooked up early in Pelican's start-up sequence leveraging the "initialized" Pelican event, so almost every configuration option can be safely redefined and would take effect.

However, since the plugin hooks up after the sanity checks on the provided configuration were done by Pelican this gives some opportunities and risks. Basically, theme authors should be careful to adhere to Pelican's conventions on the configuration directives, otherwise they may confuse their users.

This plugin protects the following configuration options from being modified by the theme:

  • BIND
  • CACHE_PATH
  • PATH
  • PELICAN_CLASS
  • OUTPUT_PATH
  • SITEURL
  • THEME
  • THEME_CONFIG
  • THEME_CONFIG_PROTECTED
  • PORT

This list can be configured by the end user in pelicanconf.py if they want to restrict it even further or make it more relaxed. The goal is to give the user the ability to define the expected behaviour for their configuration.

The plugin introduces the following configuration options one can specify in the primary Pelican configuration file:

# The name of the file to lookup in theme's directory
THEME_CONFIG = "themeconf.py"

# The list of configuration options to be protected from modification
THEME_CONFIG_PROTECTED = ["PATH","OUTPUT_PATH"]

Contributing

Contributions are welcome and much appreciated. Every little bit helps. You can contribute by improving the documentation, adding missing features, and fixing bugs. You can also help out by reviewing and commenting on existing issues.

To start contributing to this plugin, review the Contributing to Pelican documentation, beginning with the Contributing Code section.

Credits

Authored by Dmitry Khlebnikov.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pelican_theme_config-2.0.2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

pelican_theme_config-2.0.2-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file pelican_theme_config-2.0.2.tar.gz.

File metadata

  • Download URL: pelican_theme_config-2.0.2.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.9.16 Linux/5.15.0-1033-azure

File hashes

Hashes for pelican_theme_config-2.0.2.tar.gz
Algorithm Hash digest
SHA256 69519b21a7afd38df85daf2ce9083da362a91c27d36ba8b5f720186f4378182f
MD5 a06811a2a1ab79f632bb905bf0b9c833
BLAKE2b-256 3993c6663e00208173883f8e3a36a7011c3c00ea4badb35cc283c434bd8a3e5a

See more details on using hashes here.

File details

Details for the file pelican_theme_config-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pelican_theme_config-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 65e18393c6fc474d0b1aef8922dd6fcb4850a66a33d1277bc92fa83f66cbc02f
MD5 066a0ad258a104f24383341ebbe212fe
BLAKE2b-256 e863f2f34ab471f427679ee4bddc817c3ffb66a1e29d01ec1d1b5db609ce2ee6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page