kopia lustrzana https://github.com/wagtail/wagtail
Removed docs
Added release docs with upgrade consideration of alternative to django-medusapull/3413/merge
rodzic
cf815e8897
commit
c7b778c4e9
|
@ -5,6 +5,7 @@ Changelog
|
|||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Dropped Django 1.9 and Python 3.3 support; note that Django 1.8.x is still supported
|
||||
* Dropped support for generating static sites using django-medusa
|
||||
* Use minified versions of jQuery and jQuery UI in the admin. Total savings without compression 371 KB (Tom Dyson)
|
||||
* Hooks can now specify the order in which they are run (Gagaro)
|
||||
* Added a `submit_buttons` block to login template (Gagaro)
|
||||
|
|
|
@ -31,7 +31,6 @@ Features
|
|||
* Workflow support
|
||||
* An extensible `form builder <http://docs.wagtail.io/en/latest/reference/contrib/forms.html>`_
|
||||
* Multi-site and multi-language support
|
||||
* Optional `static site generation <http://docs.wagtail.io/en/latest/reference/contrib/staticsitegen.html>`_
|
||||
* Excellent `test coverage <https://coveralls.io/r/torchbox/wagtail?branch=master>`_
|
||||
|
||||
Find out more at `wagtail.io <http://wagtail.io/>`_.
|
||||
|
|
|
@ -9,7 +9,6 @@ Wagtail ships with a variety of extra optional modules.
|
|||
|
||||
settings
|
||||
forms/index
|
||||
staticsitegen
|
||||
sitemaps
|
||||
frontendcache
|
||||
routablepage
|
||||
|
@ -31,12 +30,6 @@ Site-wide settings that are editable by administrators in the Wagtail admin.
|
|||
Allows forms to be created by admins and provides an interface for browsing form submissions.
|
||||
|
||||
|
||||
:doc:`staticsitegen`
|
||||
--------------------
|
||||
|
||||
Provides a management command that turns a Wagtail site into a set of static HTML files.
|
||||
|
||||
|
||||
:doc:`sitemaps`
|
||||
---------------
|
||||
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
Static site generator
|
||||
=====================
|
||||
|
||||
.. warning::
|
||||
|
||||
django-medusa is no longer maintained, and is incompatible with Django 1.8 and above; the information below is retained for historical reference only. An alternative module based on the `django-bakery`_ package is available as a third-party contribution: https://github.com/mhnbcu/wagtailbakery
|
||||
|
||||
This document describes how to render your Wagtail site into static HTML files on your local file system, Amazon S3 or Google App Engine, using `django medusa`_ and the ``wagtail.contrib.wagtailmedusa`` module.
|
||||
|
||||
Installing ``django-medusa``
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
First, install ``django-medusa`` and ``django-sendfile`` from pip:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ pip install django-medusa django-sendfile
|
||||
|
||||
Then add ``django_medusa`` and ``wagtail.contrib.wagtailmedusa`` to ``INSTALLED_APPS``:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
INSTALLED_APPS = [
|
||||
...
|
||||
'django_medusa',
|
||||
'wagtail.contrib.wagtailmedusa',
|
||||
]
|
||||
|
||||
Define ``MEDUSA_RENDERER_CLASS``, ``MEDUSA_DEPLOY_DIR`` and ``SENDFILE_BACKEND`` in settings:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
MEDUSA_RENDERER_CLASS = 'django_medusa.renderers.DiskStaticSiteRenderer'
|
||||
MEDUSA_DEPLOY_DIR = os.path.join(BASE_DIR, 'build')
|
||||
SENDFILE_BACKEND = 'sendfile.backends.simple'
|
||||
|
||||
|
||||
Rendering
|
||||
~~~~~~~~~
|
||||
|
||||
To render a site, run ``./manage.py staticsitegen``. This will render the entire website and place the HTML in a folder called ``medusa_output``. The static and media folders need to be copied into this folder manually after the rendering is complete. This feature inherits ``django-medusa``'s ability to render your static site to Amazon S3 or Google App Engine; see the `medusa docs <https://github.com/mtigas/django-medusa/blob/master/README.markdown>`_ for configuration details.
|
||||
|
||||
To test, open the ``medusa_output`` folder in a terminal and run ``python -m SimpleHTTPServer`` or ``python3 -m http.server`` respectively.
|
||||
|
||||
|
||||
Advanced topics
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
GET parameters
|
||||
--------------
|
||||
|
||||
Pages which require GET parameters (e.g. for pagination) don't generate a suitable file name for the generated HTML files.
|
||||
|
||||
Wagtail provides a mixin (``wagtail.contrib.wagtailroutablepage.models.RoutablePageMixin``) which allows you to embed a Django URL configuration into a page. This allows you to give the subpages a URL like ``/page/1/`` which work well with static site generation.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from wagtail.contrib.wagtailroutablepage.models import RoutablePageMixin, route
|
||||
|
||||
|
||||
class BlogIndex(Page, RoutablePageMixin):
|
||||
...
|
||||
|
||||
@route(r'^$', name='main')
|
||||
@route(r'^page/(?P<page>\d+)/$', name='page')
|
||||
def serve_page(self, request, page=1):
|
||||
...
|
||||
|
||||
Then in the template, you can use the ``{% routablepageurl %}`` tag to link between the pages:
|
||||
|
||||
.. code-block:: html+django
|
||||
|
||||
{% load wagtailroutablepage_tags %}
|
||||
|
||||
{% if results.has_previous %}
|
||||
<a href="{% routablepageurl page 'page' results.previous_page_number %}">Previous page</a>
|
||||
{% else %}
|
||||
|
||||
{% if results.has_next %}
|
||||
<a href="{% routablepageurl page 'page' results.next_page_number %}">Next page</a>
|
||||
{% else %}
|
||||
|
||||
|
||||
Next, you have to tell the ``wagtailmedusa`` module about your custom routing...
|
||||
|
||||
|
||||
Rendering pages which use custom routing
|
||||
----------------------------------------
|
||||
|
||||
For page types that override the ``route`` method, we need to let ``django-medusa`` know which URLs it responds on. This is done by overriding the ``get_static_site_paths`` method to make it yield one string per URL path.
|
||||
|
||||
For example, the BlogIndex above would need to yield one URL for each page of results:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def get_static_site_paths(self):
|
||||
# Get page count
|
||||
page_count = ...
|
||||
|
||||
# Yield a path for each page
|
||||
for page in range(page_count):
|
||||
yield '/%d/' % (page + 1)
|
||||
|
||||
# Yield from superclass
|
||||
for path in super(BlogIndex, self).get_static_site_paths():
|
||||
yield path
|
||||
|
||||
|
||||
.. _django medusa: https://github.com/mtigas/django-medusa
|
||||
.. _django-bakery: https://github.com/datadesk/django-bakery
|
|
@ -56,6 +56,12 @@ Django 1.9 and Python 3.3 support dropped
|
|||
Support for Django 1.9 and Python 3.3 has been dropped in this release; please upgrade from these before upgrading Wagtail. Note that the Django 1.8 release series is still supported, as a Long Term Support release.
|
||||
|
||||
|
||||
Dropped support for generating static sites using ``django-medusa``
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Django-medusa is no longer maintained, and is incompatible with Django 1.8 and above. An alternative module based on the `django-bakery`_ package is available as a third-party contribution: https://github.com/moorinteractive/wagtail-bakery.
|
||||
|
||||
|
||||
Signals on custom ``Image`` and ``Rendition`` models connected automatically
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
default_app_config = 'wagtail.contrib.wagtailmedusa.apps.WagtailMedusaAppConfig'
|
|
@ -1,9 +0,0 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class WagtailMedusaAppConfig(AppConfig):
|
||||
name = 'wagtail.contrib.wagtailmedusa'
|
||||
label = 'wagtailmedusa'
|
||||
verbose_name = "Wagtail medusa"
|
|
@ -1,28 +0,0 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django_medusa.renderers import StaticSiteRenderer
|
||||
from wagtail.wagtailcore.models import Site
|
||||
from wagtail.wagtaildocs.models import get_document_model
|
||||
|
||||
|
||||
class PageRenderer(StaticSiteRenderer):
|
||||
def get_paths(self):
|
||||
# Get site
|
||||
# TODO: Find way to get this to work with other sites
|
||||
site = Site.objects.filter(is_default_site=True).first()
|
||||
if site is None:
|
||||
return []
|
||||
|
||||
# Return list of paths
|
||||
return site.root_page.get_static_site_paths()
|
||||
|
||||
|
||||
class DocumentRenderer(StaticSiteRenderer):
|
||||
def get_paths(self):
|
||||
Document = get_document_model()
|
||||
|
||||
# Return list of paths to documents
|
||||
return (doc.url for doc in Document.objects.all())
|
||||
|
||||
|
||||
renderers = [PageRenderer, DocumentRenderer]
|
Ładowanie…
Reference in New Issue