Now old pelicanconf.py should be rendered correctly with new Font Awesome:
- Some special cases are hardcoded. For now those are 'rss' and 'feed'
- If icon string starts with 'fa' it is assumed to represent full CSS class
- Otherwise a brand icon is assumed - sensible fallback for most users
Non-hardcoded paths are not that simple.
Direct templates do not always have meaningful *_URL or even *_SAVE_AS
values. More than that, those variables are not even defined by default.
Therefore we need to replicate the logic used by Pelican itself when
calculating the path to direct template output.
Related:
- DIRECT_TEMPLATES handling by Pelican:
01eb08c42b/pelican/generators.py (L537-L550)
- Pelican issue for "Why are CATEGORIES_URL and TAGS_URL gone?"
https://github.com/getpelican/pelican/issues/1225
Merges #75
Fixes#64, #65
Now users who wish to use Bootstrap dynamic elements (like dropdown menus)
can enable JavaScript either by including required scripts into their
static assets or by referencing their CDN URLs.
By default Alchemy uses no JavaScript - that has not changed.
There are multiple places in the theme where URL value may be either
relative to site root or pointing to a third-party resource. Separating
the handler logic into a macro makes sense.
Now BOOTSTRAP_CSS may contain paths relative to site root - that allows
users to apply custom Boostwatch themes without depending on third party
resources (custom theme may be included as static file and referenced via
relative path).
This commit adds new configuration parameter, THEME_CSS_OVERRIDES, which
can contain a sequence (list, tuple, etc) of URLs to extra stylesheets
that will be used to override default theme appearance. Both absolute and
relative URLs are supported.
It makes the theme more flexible by allowing small stylesheet tweaks
without requiring to maintain a fork of the whole theme.
When this parameter is not set the theme behaves same as before.
Alchemy is a great theme, but it was not using the full potential of
underlying technology. Bootstrap provides an easy way to customize look
and feel of rendered pages, and a lot of themes for Bootstrap are freely
available, e.g. at <https://boostwatch.com>
This commit introduces a new configuration variable BOOTSTRAP_CSS to make
use of any existing Bootstrap skins. All incompatibilities in `theme.css`
were fixed:
- Instead of using constant color values we use Bootstrap css variables for
colors:
<https://getbootstrap.com/docs/4.3/getting-started/theming/#css-variables>
- The only hardcoded color value left is the color for header/footer
borders. It was moved into a variable `--alchemy-border` for easier
overriding if needed. I have tested the current value against both dark
and light Boostwatch themes, it works ok.
- Pagination template was slightly changed to avoid producing invisible
text with some of Bootstrap skins