|Gitter| |PyPiVersion| |PyVersion| |Status| |TestCoverage| |CodeClimate| |License|
django CMS page extension to handle sitemap customization
Support Python version:
Supported Django versions:
Supported django CMS versions:
.. note:: djangocms-page-sitemap 0.8 has been relicensed with BSD license.
.. note:: djangocms-page-sitemap 1.0 dropped compatibility with Python 2 and Django < 2.2
Features
Quickstart
Install djangocms-page-sitemap::
pip install djangocms-page-sitemap
Add to INSTALLED_APPS
with django.contrib.sitemaps
:
.. code-block:: python
INSTALLED_APPS = [
...
"django.contrib.sitemaps",
"djangocms_page_sitemap",
]
Load it into the urlconf, eventually removing django CMS sitemap:
.. code-block:: python
...
urlpatterns = [
path("admin/", admin.site.urls),
...
path("", include("djangocms_page_sitemap.sitemap_urls")),
...
]
Load robots_index
templatetag and add it to the page in the head tag of the django CMS pages (or in a shared base template):
.. code-block:: html+django
{% load robots_index %}
...
<head>
<!-- somewhere in the head tag -->
{% page_robots %}
</head>
...
If you need to provide a custom sitemap configuration (for example to add more sitemap classes to it, you can append the sitemap url explicitly:
.. code-block:: python
from django.contrib.sitemaps.views import sitemap
from djangocms_page_sitemap.sitemap import ExtendedSitemap
from myapp.sitemaps import MySiteSitemap
urlpatterns = [
...
path("sitemap.xml", sitemap, {
"sitemaps": {
"cmspages": ExtendedSitemap, "myapp": MySiteSitemap,
}
),
...
]
django-app-enabler support
django-app-enabler
_ is supported.
You can either
python -mapp_enabler install djangocms-page-meta
python -mapp_enabler enable djangocms_page_meta
Fully using this package will require some changes that cannot be modified by django-app-enabler
:
urls.py
;python manage.py migrate
Check documentation above for details.
Usage
After installing as above, you will be able to tune the sitemap setting for each page.
A new menu item Sitemap properties
will be available in the page toolbar.
For each page you will be able to set the following flags / values:
True
)noindex
value to page robots meta tagnoarchive
value to page robots meta tagpage_robots
meta tag accepts the following parameters:
page
: the page to render robots meta tag (default: current page). Can be
any valid page lookup
_site
: the current site id (default: current site)... _page lookup: https://docs.django-cms.org/en/reference/templatetags.html#page_lookup .. _django-app-enabler: https://github.com/nephila/django-app-enabler
.. |Gitter| image:: https://img.shields.io/badge/GITTER-join%20chat-brightgreen.svg?style=flat-square :target: https://gitter.im/nephila/applications :alt: Join the Gitter chat
.. |PyPiVersion| image:: https://img.shields.io/pypi/v/djangocms-page-sitemap.svg?style=flat-square :target: https://pypi.python.org/pypi/djangocms-page-sitemap :alt: Latest PyPI version
.. |PyVersion| image:: https://img.shields.io/pypi/pyversions/djangocms-page-sitemap.svg?style=flat-square :target: https://pypi.python.org/pypi/djangocms-page-sitemap :alt: Python versions
.. |Status| image:: https://img.shields.io/travis/nephila/djangocms-page-sitemap.svg?style=flat-square :target: https://travis-ci.org/nephila/djangocms-page-sitemap :alt: Latest Travis CI build status
.. |TestCoverage| image:: https://img.shields.io/coveralls/nephila/djangocms-page-sitemap/master.svg?style=flat-square :target: https://coveralls.io/r/nephila/djangocms-page-sitemap?branch=master :alt: Test coverage
.. |License| image:: https://img.shields.io/github/license/nephila/djangocms-page-sitemap.svg?style=flat-square :target: https://pypi.python.org/pypi/djangocms-page-sitemap/ :alt: License
.. |CodeClimate| image:: https://codeclimate.com/github/nephila/djangocms-page-sitemap/badges/gpa.svg?style=flat-square :target: https://codeclimate.com/github/nephila/djangocms-page-sitemap :alt: Code Climate