Templating and Themes Support¶
Ablog, being a Sphinx extension, has highly customizable HTML output. The generated HTML files are based on Sphinx templates. You, or Sphinx themes, can partially or completely override these templates to customize the resulting HTML.
Changed in version 0.11: The Ablog 0.11 has changed and improved the way you can customize templates and themes. Please note that this document describes the new way of customizing templates and themes support.
Partial or complete override of Ablog templates¶
To control whether Ablog injects its own templates into the Sphinx build, you can use the following conf.py
configuration option:
- skip_injecting_base_ablog_templates¶
If set to
True
, Ablog will not inject its own templates into the Sphinx build. This is useful if you want to completely override Ablog templates in your Sphinx project or in the Sphinx theme. The default isFalse
.
Customizing templates in the project¶
All Ablog templates are under the ablog/
folder space. For example, ablog/postcard.html
. You can override these templates by placing them in the ablog/
folder in your project templates folder.
Add the
templates_path
option in yourconf.py
file:templates_path = ["_templates"]
Create a folder
_templates/
next to yourconf.py
file. It will hold your custom templates.Create a folder
ablog/
inside the_templates/
folder.Create a file here with the same name as the template you want to override. For example,
postcard.html
. This file will be used as a custom template for the sidebar. You can copy the content of the original template from the Ablog source code and modify it as you need.Optionally: if you want to completely override all Ablog templates, set the
skip_injecting_base_ablog_templates
option toTrue
, copy all Ablog templates here, and customize them as you need.
Customizing templates in the theme¶
If you are a Sphinx theme author, you can ship customized Ablog templates in your theme. You can override Ablog templates by placing them in the ablog/
folder in your theme templates, e.g., ablog/postcard.html
.
In the theme root (where the
theme.toml
(ortheme.ini
in older Sphinx themes) file is), create a folderablog/
.Create a file here with the same name as the template you want to override. For example,
postcard.html
.This file will be used as a custom template for the sidebar. You can copy the content of the original template from the Ablog source code and modify it as you need.
In your
theme.toml
file, add the following (under the[options]
section):ablog_inject_templates_after_theme = true
This will ensure that Ablog templates are injected after the theme templates, so you can override them while still using the Ablog templates as a fallback.
Comments
comments powered by Disqus