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. (Documents migrated from VoodooPad keep honoring an existing VPNewPageTemplate page too — but if both exist, Template: New Page wins.)

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

These expand the moment the page is created, using your Locale & Dates 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.

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.