Module

postprocess.sitemap

Sitemap generation for SEO.

Generates XML sitemap files for search engine discovery and indexing. Creates sitemap.xml with page URLs, modification dates, change frequencies, and priorities. Supports sitemap index files for large sites.

Key Concepts:

  • XML sitemap: Standard XML format for search engine discovery
  • Page metadata: Last modified dates, change frequencies, priorities
  • Sitemap index: Index file for multiple sitemap files (large sites)
  • SEO optimization: Helps search engines discover and index content

Related Modules:

  • bengal.orchestration.postprocess: Post-processing orchestration
  • bengal.core.site: Site container with pages
  • bengal.core.page: Page objects with metadata

See Also:

  • bengal/postprocess/sitemap.py: SitemapGenerator for sitemap generation
  • https: //www.sitemaps.org/: Sitemap protocol specification

Classes

SitemapGenerator
Generates XML sitemap for SEO and search engine discovery. Creates sitemap.xml files listing all p…
3

Generates XML sitemap for SEO and search engine discovery.

Creates sitemap.xml files listing all pages with metadata for search engines. Supports sitemap index files for large sites and i18n alternate language links.

Creation:

Direct instantiation: SitemapGenerator(site)
  • Created by PostprocessOrchestrator for sitemap generation
  • Requires Site instance with rendered pages

Attributes

Name Type Description
site

Site instance with pages and configuration

logger

Logger instance for sitemap generation events

Relationships
  • Used by: PostprocessOrchestrator for sitemap generation - Uses: Site for page access and configuration
Features
  • URL location with baseurl support - Last modified dates from page metadata - Change frequency and priority metadata - i18n alternate language links (hreflang) - Sitemap index support for large sites

Methods 1

generate
Generate and write sitemap.xml to output directory. Iterates through all pages…
0 None
def generate(self) -> None

Generate and write sitemap.xml to output directory.

Iterates through all pages, creates XML entries with URLs and metadata, and writes the sitemap atomically to prevent corruption.

If no pages exist, logs info and skips generation (no empty sitemap file).

Internal Methods 2
__init__
Initialize sitemap generator.
1 None
def __init__(self, site: Any) -> None

Initialize sitemap generator.

Parameters 1
site Any

Site instance

_indent
Add indentation to XML for readability.
2 None
def _indent(self, elem: ET.Element, level: int = 0) -> None

Add indentation to XML for readability.

Parameters 2
elem ET.Element

XML element to indent

level int

Current indentation level