Pages
Learn how to split your document into pages with different layouts.
AI assisted, human approved — novem uses AI to review and keep our documentation up to date.
Available in: documents only.
{{ page # page break
orient: landscape # page orientation
cols: 2 # number of columns
column-fill: auto # fill columns sequentially (default: balance)
type: fp # page type
}}
The {{ page }} section creates a new page in your document. Each page can
have its own orientation, column layout and type. Content before the first
{{ page }} becomes page 0.
The page section is always self-closing — there is no {{ /page }} tag.
keyword: orient / orientation / o
options: portrait / p / port | landscape / l / land
default: portrait
Controls whether the page is portrait (tall) or landscape (wide).
keyword: cols
options: 1 | 2 | 3
default: 1
Sets the number of columns for the page layout. Content flows across columns left to right.
keyword: column-fill
options: balance | auto
default: balance
Controls how content is distributed across columns when cols is
greater than 1.
balance— content is split evenly so all columns end at roughly the same height. This is the CSS default and matches what most print and editorial layouts expect.auto— content fills the first column to the bottom of the page before flowing into the next. Useful for newspaper-style pages or when you want the second column reserved for overflow only.
column-fill is ignored on single-column pages.
Use {{ colbreak }} inside a multi-column page to force the
following content into the next column. It is a self-closing token
with no attributes:
{{ page
cols: 2
column-fill: auto
}}
This text fills the first column.
{{ colbreak }}
This text starts at the top of the second column, regardless of how
much space was left below the previous block.
{{ colbreak }} only takes effect on CSS multicolumn pages — pages
with cols > 1 and no height: 100% vis or paragraph child. When a
flex-height child is present the page is rewrapped into manual column
buckets and {{ colbreak }} is currently ignored; in that case, lay
out the columns by ordering content explicitly or split into separate
{{ page }}s.
keyword: type
options: fp | index | centered | blank
Controls the page type:
fp— front page, typically used for cover pagesindex— index or table of contents stylecentered— centered content layoutblank— empty page
keyword: footer
options: true | false | "Custom footer text"
default: true
Controls whether a footer is displayed and optionally sets custom footer text.
keyword: pnum
options: "auto" | "custom string"
Overrides the page number display.
keyword: autopaginate
options: true | false
default: true
When a page's content exceeds the available space, novem automatically
flows the overflow onto continuation pages that inherit the original page's
orient, cols, column-fill, type, and footer settings.
What carries over:
- Lists keep numbering across the split — an
<ol>that splits between items 3 and 4 starts the continuation list withstart="4". - Tables reprint their
<thead>(or leading<th>row) and<colgroup>on every continuation, so column widths and header labels stay aligned. - Callouts and blockquotes split with their chrome (padding, border, background) replicated on each page they cross.
- Headings move forward when they'd otherwise be orphaned at the bottom of a page with no following content to keep them company.
- Footnotes follow the reference. A
[[ftn: ...]]whose<sup>ends up on the second continuation has its body rendered in that page's footer, not stranded on the original. - Page numbering resets at format transitions — a doc with
pnum: iprologue pages followed by arabic body pages readsi, ii, iii, 1, 2, 3.
Opting out:
Set autopaginate: false to clip overflow as before — useful for cover,
index, TOC, and centered / blank pages where you've already hand-tuned
the layout. Those page types are also skipped automatically; you only
need the explicit override for content pages.
Set as document frontmatter to control the default, or on an individual page to override:
---
title: My Document
autopaginate: false # disable across the whole doc
---
{{ page
autopaginate: true # but re-enable for this one
}}
Theme hooks:
Continuation pages are stamped with data-auto-cont (presence-only) and
data-auto-seq="N" (1-based continuation index) on the page wrapper.
Themes can target either:
/* Hide the running header on continuations */
.novem--doc--page-wrapper[data-auto-cont] .novem--doc--page-header {
visibility: hidden;
}
/* Or just mark them */
.novem--doc--page-wrapper[data-auto-cont] .novem--doc--page-header::after {
content: " (continued)";
color: var(--novem-text-muted);
font-size: 0.85em;
}
The --doc-title, --doc-subtitle, --doc-author, and --doc-date
CSS custom properties are stripped on continuations, so themes that use
content: var(--doc-title) in ::before rules automatically suppress
the title on continuations without any extra work.
data-page-num vs data-page-index:
data-page-num(1-based) counts every rendered page including continuations. This is what readers see.data-page-index(0-based) identifies the source{{ page }}— continuations of source page 3 all carrydata-page-index="3". Use this when styling "the second author-defined page" regardless of how many continuations it spans.
Caveats:
nth-childselectors on page wrappers count continuations. Use[data-page-num]or[data-page-index]attribute selectors instead if you want to target the author's logical pages.- Multi-column with
column-fill: balanceand tightly packed tall atoms can rarely overflow by a few pixels — the engine balances columns post-pack, which can land one column slightly taller than the others. Usecolumn-fill: autoif exact fit matters. - Paragraphs aren't split mid-line. A single paragraph taller than the page gets placed on its own page; if it's still taller than the page, it clips at the bottom.
keyword: ref
options: FQNP | shortname | local path | global path
Embeds another novem visual as a full-page element. Supports references to
documents (/d/), plots (/p/) and grids (/g/). The embedded visual
replaces the page content entirely.
# Cover Page
{{ page
orient: portrait
}}
# Chapter One
Content for chapter one.
{{ page
orient: landscape
cols: 2
}}
## Data Overview
Two-column landscape layout for charts.
{{ page
ref: /u/novem_demo/d/quarterly-report
}}
{{ page
orient: landscape
ref: /u/novem_demo/g/nei_rgn_dash
}}
---
title: Quarterly Review
---
# Q4 2024 Review
{{ page
orient: portrait
type: fp
}}
## Executive Summary
{{ page
orient: landscape
cols: 2
}}
## Charts and Data
{{ page
orient: portrait
type: centered
}}
## Conclusions