{# The PDF's document information (#195). WeasyPrint reads Author, Subject and Keywords off these tags, and the title and language are the skeleton's own. Every value is a fact the document owns, escaped as an attribute. Deliberately no dcterms.created or dcterms.modified: a date makes two renders of one document differ, and the goldens rest on determinism. Keywords split on commas in the PDF, which is why the list joins on one. #} {% if firm_name %} {% endif %} {% if campaign_name or department or date_range %} {% endif %} {% if department or issue_label %} {% endif %} {% if stamp %} {% include "common/stamp.html" %} {% endif %} {{ cover_html }} {# Zero-height leaves where a following running box seeds its fallback. A leaf, because a string set on an element spanning sheets -- the body, the document table -- wins on every sheet it spans and the section titles below would never show. After the cover, because an element ahead of a named page opens a blank sheet of its own, which is why the leaves take a turned page's name when the body opens on one (#341). #}
{{ contents_html }}{{ exhibits_html }} {# The body table is frame.width, not frame.inner: every container computes its column widths from the frame and pads inside that, so narrowing the table here would overflow each split by its own padding. #} {# One table per run of sheets laid the same way up (#341): a named page applies to a block in the body's flow and never to a table row, so a turned page is a table of its own, as wide as its frame. #} {% for run in body_runs %} {{ run.html }} {% endfor %} {{ back_matter_html }}