MojoPad

Templates and Placeholders

Templates give new pages a head start. They're just pages — no special editor, no separate format.

The new-page template

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 change worth making twice

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.

Many templates, and a picker

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 pickerBlank, 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.

Insert a template into a page that already exists

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.

Variables

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:

WriteGet
{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.

A property is a variable too

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.

Placeholders

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#>

The daily template

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.