Templates give new pages a head start. They're just pages — no special editor, no separate format.
Create a page named Template: New Page. From then on, every new page begins
as a copy of it — a link back to your index, a heading you always start with, a date.
(Documents migrated from VoodooPad keep honoring an existing VPNewPageTemplate
page too — but if both exist, Template: New Page wins. If you wrote a template in
VoodooPad years ago, it is already working here.)
Settings ▸ Links & Pages ▸ New pages says the same thing and has a Show me button that opens your template — or starts one if you have not got one. It is a page rather than a box in a settings window, which is what lets a new page begin as anything at all; but a setting is where people look for it, so that is where it says so.
A template starts a page. If instead you want to make the same change to a batch of pages you already have — and keep that change to press again next month — see Bulk Edits and Stamps.
Any page named Template: Something is a reusable template — make a
Template: Meeting, a Template: Project, a Template: Person. Once you
have one, ⌘N offers a small picker — Blank, your default
New Page, and each template by name — so you choose what a new page starts as. (No
custom templates? ⌘N stays a single step, exactly as before.)
A template carries more than text: the new page inherits the template's tags, its
page type, and the values of its properties — so a Project
template can pre-set status: Active and the Project type in one go. The new page
also takes the template's format — a rich-text template makes a rich-text page.
The fastest way to make one: right-click any page in the sidebar ▸ Save as Template….
It copies that page — content, tags, type, and properties — into a new Template:
page, ready to reuse.
Not every page is born through ⌘N. Highlight text and choose Link and the
new page appears without ever asking about templates; imported pages arrive the same way. You
don't have to delete and recreate anything: stand on the page, type /template (or use
the format bar's + menu), and pick one. It expands at your caret — variables
filled in with this page's name and date, placeholders ready to type over — so a page
a link created a moment ago, or one you made years back, takes a structure whenever you
decide it needs one.
Write a name in double braces and the template fills it in. These expand the moment the page is created, using your Dates & Time settings:
| Write | Get |
|---|---|
{date} | Jun 11, 2026 |
{time} | 9:41 AM |
{timeDate} | Jun 11, 2026, 9:41 AM |
{pageName} | the new page's name |
Scriptlets run at creation too, with destination template — so a
template can compute anything a script can. See Scripting: Scriptlets.
The Monday report. You keep a kind called Headlines, and it carries a property that asks a model for the five stories your field is running this week. Pressing ✦ fills it in. What you actually want on Monday is not that field — it is a piece of writing: your standing heading, the material underneath it, and a section left empty for what you think about it.
Write the property's name in braces and a template becomes exactly that:
# Report for {pageName}
_Compiled {date}_
## What the wires are running
{Headlines This Week}
## What I make of it
Stand on a page of that kind, insert the template, and every brace becomes that page's own answer. The kind holds the questions, ✦ goes and gets the answers, and the template turns them into a draft.
Or skip the template entirely: type { on the page. A list of that
page's properties appears — the same gesture as [[ for pages — and picking one
drops its answer straight into your writing, formatting and all. That is the quickest
route from "✦ went and got it" to "it is in my article": stand where you want the material,
type two braces, choose. What lands is ordinary content you can edit, cut and rewrite.
The same { on a page named Template: Something does the other
half of the job: there it writes {Name} as a placeholder, because on a
template you are describing what to fetch rather than fetching it. The list tells you which
of the two it is about to do.
You get a fresh copy, and that is the point. What lands is ordinary writing — edit it, cut it, add to it, and nothing tries to keep it in step with the property afterwards. Next week, insert it again for a new draft. Nothing you wrote can be overwritten by a later fill.
Make the template a formatted page if the material has a design. A property a model filled may hold a laid-out answer — a wall of cards, headings, links. A formatted template keeps that design intact. A Markdown template flattens it to plain headings and paragraphs, because a Markdown page cannot carry the layout. Both work; one of them looks like the thing you saw in the field.
A name that is not one of your properties is left exactly as written, so a brace you have not defined yet stays visible instead of quietly becoming nothing.
Write the braces, not dollars. An older spelling, $Name$, also
expands — templates in the wild are written that way and nothing needs changing. But
$…$ is how you write a formula (see Math), and on a formatted page
MojoPad turns one into a formula as you type. So a variable written with dollars on a
formatted page becomes italic mathematics and never expands. Braces cannot be mistaken for
anything: {Name} is the spelling to use, and if you have a template where a
variable turned into a formula, delete it and retype it in braces.
Write <#like this#> anywhere in a template. When a page is created
from it, the first placeholder is already selected — just type. Then press
⌃/ (Edit ▸ Select Next Placeholder) to jump to the next one, type, jump,
type. A project template might read:
Project: <#name#>
Status: <#status#>
Next step: <#next step#>
Template: Daily seeds Daily Notes instead of regular pages — same variables, same placeholders. And Template: Site reskins Static Publishing. One naming convention, three template kinds.