A set of helpers for baking your Django Wagtail site out as flat files.
- Issues: https://github.com/wagtail/wagtail-bakery/issues
- Testing: https://travis-ci.org/wagtail/wagtail-bakery
- Coverage: https://coveralls.io/github/moorinteractive/wagtail-bakery
Wagtail-bakery is built on top of Django bakery. Please read their documentation for detailed configuration and how to build default Django flat files. Yes. Wagtail-bakery is not limited to build Wagtail pages specifically, mixed content is possible!
- Single management command that will build your Wagtail site out as flat files
- Support for multisite, theming and multilingual setup
- Support for
- Support for generating a static API
- Ready to use Wagtail Buildable views to build all your (un)published pages at once (no extra code required!)
pip install wagtail-bakery
wagtailbakery to your
INSTALLED_APPS = ( # ... 'bakery', 'wagtailbakery', )
Define whether you want to build multiple sites or the default site (see examples for impact on directory output), by default this settings is
BAKERY_MULTISITE = True
Add the build directory where you want to be the site be built as flat files.
BUILD_DIR = '/tmp/build/'
As you may know with Django bakery, the trickiest part is to make your current models/pages buildable with Buildable views. As Django Wagtail uses only the
Page model at their lowest level, you can use at least one of the already present Buildable views provided by Wagtail bakery.
Build all published public pages (use for production).
BAKERY_VIEWS = ( 'wagtailbakery.views.AllPublishedPagesView', )
Build all published and unpublished public pages (use for staging/acceptance).
BAKERY_VIEWS = ( 'wagtailbakery.views.AllPagesView', )
To build static JSON files representing your site's API, use the following views:
BAKERY_VIEWS = ( 'wagtailbakery.api_views.PagesAPIDetailView', 'wagtailbakery.api_views.PagesAPIListingView', 'wagtailbakery.api_views.TypedPagesAPIListingView', )
The API views use Wagtail's V2 API module. To configure the data that is rendered by these views, please refer to Wagtail's V2 API configuration guide.
Build the site out as flat files by running the
build management command.
If you want to check how your static website will look, use the
buildserver command after you have build your static files once.
In the examples directory you can find a Wagtail setup with fixtures for a single site as well as a multisite setup.
Create a virtualenv and go to one of the examples, you can use the
Make command to install all requirements, load fixtures and run the server.
As described in the usage section, use
manage.py build to build out the example as static files.
Build output with
build/example.com/index.html build/example.com/about/index.html build/example.com/blog/index.html build/example.com/blog/example/index.html build/static/
Build output with
build/index.html build/about/index.html build/blog/index.html build/blog/example/index.html build/static/
For issues please submit an issue on GitHub.
- Ensure you have the latest versions of
twineinstalled in your virtual environment.
- Create a new branch (e.g.
release/1.1.3) for the release of the new version.
- Update the version number in
setup.pyfollowing Semantic Versioning.
- On GitHub, create a pull request and squash merge it.
- Checkout and pull the
- (Optional) If you need to verify anything, use
make publish-testto upload to https://test.pypi.org and enter your PyPi test credentials as needed.
make publishand enter your PyPi credentials as needed.
- On GitHub, create a release and a tag for the new version.