Themes
A DJ Press theme is a collection of one or more Django template files. and any static files required to style those templates.
Template Files
Template files should be copied to: ./templates/djpress/{{ your_theme_name }}/
. At a minimum, the theme must include
an index.html
file. You can build an entire theme with just this one file, and an example can be seen in the DJ Press
included theme called default
.
Other template files that can be included are as follows:
home.html
- used on the home page view, i.e.https://yourblog.com/
archives.html
- used to display the date-based archives views, e.g.https://yourblog.com/2024/
category.html
- used to display blog posts in a particular category, e.g.https://yourblog.com/category/news/
author.html
- used to display blog posts by a particular author, e.g.https://yourblog.com/author/sam/
single.html
- used to display a single blog post, e.g.https://yourblog.com/2024/09/30/my-interesting-blog-post/
page.html
- used to display a single page, e.g.https://yourblog.com/colophon/
In all cases, if the above file is not found, the index.html
page will be displayed instead.
Static Files
Static files should be copied to: ./static/djpress/{{ your_theme_name }}/
. Static files are typically grouped into
sub-directories for CSS or JavaScript or image files, e.g. ./static/djpress/{{ your_theme_name }}/css/
or
./static/djpress/{{ your_theme_name }}/js/
or ./static/djpress/{{ your_theme_name }}/img
, but these
sub-directories are optional and up to the theme developer how or if to use them.
From within the template files, static assets can be referenced using standard Django template tags, e.g.
{% static 'djpress/{{ your_theme_name }}/css/style.css' %}
, depending on the aforementioned directory structure.
Configure a Theme
In your Django project settings file, configure the THEME
setting in the DJPRESS_SETTINGS
object, e.g.
DJPRESS_SETTINGS = {
"THEME": "your_theme_name",
}
In the example configuration, your_theme_name
must match exactly the directory name that the theme’s template files
are copied to. If this directory cannot be found, or if there is no matching template file in it, your site will crash
with a TemplateDoesNotExist
error.
Examples
There are currently two themes included in DJ Press: default
and simple
. The default
theme demonstrates how to
build a theme with just a single index.html
file, whereas the simple
theme uses all available template types.