entirius-django-sitemap
A Django module that generates multilingual XML sitemaps and robots.txt files for storefronts of Entirius, the
open-source modular ecommerce platform. It writes one sitemap per content type (products, categories, custom
products, content pages, FAQ items), a sitemap index and a robots.txt for every channel domain.
What it does
- Generates sitemap files per content type and a sitemap index for each channel domain.
- Builds a
robots.txtper domain that references the generated sitemaps. - Writes one URL per item and language, merged into one file per channel or split per language.
- Builds URLs from prefix templates with language and channel placeholders.
- Skips a content type when its source module (products, content, FAQ) is not installed.
Installation
uv add entirius-django-sitemap
pip install entirius-django-sitemap
INSTALLED_APPS = [
...
"django_regional",
"django_sitemap",
]
The module has no HTTP endpoints, so there is no URL include. No setting is required; optional settings
(SITEMAP_URL_HOST, SITEMAP_FORMAT_XML, SITEMAP_LIMIT, SITEMAP_ROOT_DIR, SITEMAP_ROBOTS_TEMPLATE_PATH,
LIST_OF_CATEGORY_IDXES_WHICH_ARE_EXCLUDED) are described in
https://github.com/entirius/entirius-django-sitemap/blob/develop/AGENTS.md (section Settings).
Each content source is an extra — pim (products and categories), contentdb (content pages), faq (FAQ items):
uv add "entirius-django-sitemap[pim,contentdb,faq]"
Quick start
from django_sitemap.models import DomainSitemap
from django_sitemap.worker.sitemap import generate_robots, generate_sitemap
domain = DomainSitemap.objects.get(idx="shop-en")
generate_sitemap(domain)
generate_robots(domain)
The same from the command line, for one domain or for all of them:
python manage.py generate_sitemap --domain_idx shop-en
python manage.py generate_sitemap
Requirements
- Python 3.11 or newer, Django 4.0 or newer.
- Entirius packages pulled in:
entirius-django-regional,entirius-py-process-logger. - Optional, through the extras:
entirius-django-pim,entirius-django-contentdb,entirius-django-faq.
Documentation
- Module docs: https://github.com/entirius/entirius-django-sitemap/tree/develop/docs
- Entirius documentation: https://docs.entirius.com/
- Changelog: https://github.com/entirius/entirius-django-sitemap/blob/develop/CHANGELOG.md
Part of Entirius
This module runs inside the Entirius backend service (Volkanos) and reads from the product, content and FAQ modules.
- Backend service: https://github.com/entirius/entirius-service-volkanos
- Docker harness: https://github.com/entirius/entirius-zeno
- Sibling modules: https://github.com/entirius/entirius-django-pim, https://github.com/entirius/entirius-django-contentdb, https://github.com/entirius/entirius-django-faq
Development
make install # sync dependencies (uv)
make check # lint + format check (ruff)
make test # test suite (pytest + pytest-django, needs PostgreSQL via DATABASE_URL)
Development and agent instructions: https://github.com/entirius/entirius-django-sitemap/blob/develop/AGENTS.md
License
Mozilla Public License 2.0 (MPL-2.0) — see https://github.com/entirius/entirius-django-sitemap/blob/develop/LICENSE.
Metadata
Release files for entirius-django-sitemap 4.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| entirius_django_sitemap-4.0.2.tar.gz | 146.6 kB | Without provenance | Details for entirius_django_sitemap-4.0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| entirius_django_sitemap-4.0.2-py3-none-any.whl | Python 3 | none | any | Details for entirius_django_sitemap-4.0.2-py3-none-any.whl |
Total release size: 190.0 kB
Release files / entirius_django_sitemap-4.0.2.tar.gz
| Download URL | entirius_django_sitemap-4.0.2.tar.gz |
|---|---|
| Size | 146.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac1e3ae4bc787a5036a31e67a9bbf89965f4c4604a6297a77dc9bd87ce713cc1
|
|
BLAKE2b-256 checksum How to use checksums |
8158962bc110561daf074dc5cf64bfd528262a4de0412d025e407323d96b449f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / entirius_django_sitemap-4.0.2-py3-none-any.whl
| Download URL | entirius_django_sitemap-4.0.2-py3-none-any.whl |
|---|---|
| Size | 43.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f2941e5e6db93618a2122ade282b2f3f84f1229562cf09727398a9bccd94e3a
|
|
BLAKE2b-256 checksum How to use checksums |
3521c317f9fae5efe0b9e30b9eaf356f2377a172920031689e13906cf3bde993
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for entirius-django-sitemap 4.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.