{% extends "brickwork/shell/base.html" %} {% load i18n %} {% comment %} Docs shell (ADR-091, icvoss/django-brickwork#439): the documentation surface, a new shell rather than regions bolted onto the marketing shell. It reuses base.html's document skeleton (the {% static %} CSS link, the theme/ density/dir attributes on , the skip link, the no-JS floor, the toast/ modal roots) and adds the [rail | article] two-column layout no other shell carries. A docs page {% extends %} this shell and is itself {% extends %}d by a consuming page (BR-BW-PAGE-001 at docs scope), never {% include %}d. Why a new shell and not marketing regions (ADR-091 decision 1): the deciding fact is source order. A docs page must emit article-then-rail; the marketing shell emits a single content block inside
. A conditional layout inside one template sharing both shapes would be a fork wearing a flag. Named blocks (semver-public, BR-BW-TPL-001), all empty-graceful: content the article body: the one region every page fills. Lands inside the
element, inside
, before the rail in document order (see Source order below). docs_header an optional page header inside the article, above content (e.g. a title, a breadcrumb, a version switcher a consumer composes itself: ADR-091 declines a package-owned version region, since the package cannot know a consumer's version scheme). docs_footer an optional page footer inside the article, below content (e.g. prev/next links, a feedback control a consumer composes itself: ADR-091 declines a package-owned feedback region for the same reason). docs_nav the rail's inner content: a consumer composes {% bw_nav %} here over its own docs_nav_items (brickwork ships no docs nav component: the mechanism is the existing {% bw_nav %}, not a new one). Wrapped in a native
/ disclosure so the rail collapses on narrow viewports with zero JavaScript. Region blocks (ADR-091 decision 2, following #434's shape exactly): a `*_region` block wraps the ELEMENT around an inner content block of the same stem, as a second, outer override seam. Filling only the inner block (docs_nav, docs_header, docs_footer) is unaffected: the wrapper markup is unchanged; overriding the `_region` block instead replaces the wrapper element itself; overriding a `_region` block EMPTY removes the region and its chrome entirely, which the inner-block-only seam can never do. docs_header_region wraps the page header
, inside the article. Carries no landmark. docs_footer_region wraps the whole