Skip to main content

A set of helpers for baking your Django Wagtail site out as flat files.

Project description

Wagtail-bakery

A set of helpers for baking your Django Wagtail site out as flat files.

Build Status Coverage Status

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!

Features

  • Single management command that will build your Wagtail site out as flat files
  • Support for multisite, theming and multilingual setup
  • Support for i18n_patterns
  • 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!)

Installation

pip install wagtail-bakery

Add bakery and wagtailbakery to your INSTALLED_APPS setting.

INSTALLED_APPS = (
    # ...
    'bakery',
    'wagtailbakery',
)

Configuration

Define whether you want to build multiple sites or the default site (see examples for impact on directory output), by default this settings is False.

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.

Usage

Build the site out as flat files by running the build management command.

manage.py build

If you want to check how your static website will look, use the buildserver command after you have build your static files once.

manage.py buildserver

Examples

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 BAKERY_MULTISITE=True:

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 BAKERY_MULTISITE=False (default):

build/index.html
build/about/index.html
build/blog/index.html
build/blog/example/index.html
build/static/

Troubleshooting

For issues please submit an issue on GitHub.

Development

Releases

  1. Ensure you have the latest versions of pip, setuptools and twine installed in your virtual environment.
  2. Create a new branch (e.g. release/1.1.3) for the release of the new version.
  3. Update the version number in setup.py following Semantic Versioning.
  4. Update CHANGELOG.md.
  5. On GitHub, create a pull request and squash merge it.
  6. Checkout and pull the master branch locally.
  7. (Optional) If you need to verify anything, use make publish-test to upload to https://test.pypi.org and enter your PyPi test credentials as needed.
  8. Use make publish and enter your PyPi credentials as needed.
  9. On GitHub, create a release and a tag for the new version.

Credits

Thanks to @mhnbcu for bringing this idea up initially, and Django Bakery for providing the initial bakery package.

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

wagtail-bakery-0.3.0.tar.gz (8.2 kB view details)

Uploaded Source

File details

Details for the file wagtail-bakery-0.3.0.tar.gz.

File metadata

  • Download URL: wagtail-bakery-0.3.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for wagtail-bakery-0.3.0.tar.gz
Algorithm Hash digest
SHA256 46dd6d31f2305094945eb3a9ee7fc8dbeca778fe13cd96b2f245a22467412390
MD5 b2b2a05d992c7424934d9cd450aba73b
BLAKE2b-256 11e3f4b09541a3ea2528bd2ed8abe737dc7f8b9541cdbc2e33dea19c1dac798c

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