MojoPad

Migrating from VoodooPad

MojoPad was built to be the place VoodooPad documents retire to — losslessly.

One menu item

Choose File ▸ Import VoodooPad Document… and pick your .vpdoc. Every page comes across: rich text pages with their formatting and their embedded images and diagrams, plain text pages, web archives (with the same Clean / Snapshot choice as any other import), images, PDFs, and URL bookmark pages. Page links reconnect automatically because linking is by name — the moment the pages exist, the words light up again.

What maps to what

VoodooPadMojoPad
Pages, aliases, WikiWordsIdentical concepts, same behavior
Checkboxes on a pageReal to-do rows, still checked or not as you left them
CollectionsFolders in the sidebar (drives PDF/ePub order)
Tags, To-dos, Anchors, BacklinksSame-named palettes
VPNewPageTemplateHonored as the new-page template, including $date$-style variables
Scriptlets <% %>Same syntax, JavaScript inside — see Scripting: Scriptlets
Plugin pagesPages named Plugin: X — see Scripting: Plugins
Event scriptsPages named Event: X — see Scripting: Event Pages
Encrypted pagesRe-encrypt after import (MojoPad uses modern AES-256-GCM)
Static publishingThe Static palette — see Static Publishing
The Bucket, Sketch, web server, web exportAll present and accounted for
Each page's own fonts, sizes, colors and indentsKept, and kept to that page — see below

Each page keeps its own look

An archive you have kept for decades, where every page arrived with its own typeface, its own sizes and colors, the indents you set years ago — and you want each page to look the way it did, even when three of them share the journal view, or one is embedded in another. Something you pasted from another app, which brought that app's styling with it. A wiki a colleague sends you, some of it written by people you have never met.

All three put styling of their own into your pages, and MojoPad treats that styling the same way every time: a page's styling applies inside that page, and nowhere else. You do not have to do anything to get this. It is how every page is drawn. (A page kept as an Original snapshot is the exception: it is shown in a frame of its own, where its site's styling still can't restyle or cover MojoPad, but the limits below don't apply inside that frame — fonts carried inside it and its animations stay, and a picture it couldn't keep still loads from the web.)

Where a page's look applies

  • Inside the box the page is drawn in, wherever that box is: the editor, a pane beside it, a peek or a small page window, an embed, a journal day, a canvas card, a slide in Presentation Mode, the answer side of a flashcard, the search results preview, page history, and the graph's preview — in every window you have open.
  • Two imported pages on screen together each keep their own look. VoodooPad names its paragraph and text styles the same way on every page, so without this, whichever page came later in the window would set the font, size and indent for both. Open two imported days in the journal, or two imported pages in panes side by side, and each looks as it did.
  • An embedded page keeps its own look, and the look of the page around it stops at the edge of the embed.
  • A storyboard or a mind map is one page. Styling kept in any card reaches every card on that board — the card open full screen included — and nothing outside it. A map draws only each thought's first line, so styling inside that line reaches every thought on the map and nothing outside it; styling kept ahead of a thought's first line is not drawn on the map at all.
  • Whatever a page draws is cut off at the edge of its box. A table or a line of code wider than the page scrolls sideways inside the page rather than dragging the area around it along. (That edge is a screen thing: a printed page is not cut off.)
  • On a Gallery wall, and in a database view's gallery layout, a card shows the page's words without its styling, so a wall of imported pages reads evenly. Open the card and the page appears in its own look.

What a page's styling can do, and what it can't

Still applied: typefaces by name, sizes, colors, spacing, indents, borders, underlines, tables and lists, hover effects, pictures carried inside the page, and styling meant for particular screen sizes or for printing.

Left out: styling aimed at the whole window rather than at the page's content, which no longer applies anywhere, not even to the page itself; fonts and animations a page defines for itself; styling that depends on what else is on screen; positions pinned to the window or set for all four edges at once, and which box sits on top of which; anything that would turn part of the window into a handle that drags it; and pictures from the web.

A page cannot reach past itself in other ways either. A button or a link in a page cannot open a panel over MojoPad, cannot take the keyboard focus the moment the page opens, and cannot add a keyboard shortcut to the window. Styling written directly on a single paragraph or word is held to the same limits as the rest.

What stays in your pages, and what saving takes out

All of this happens as a page is drawn, not by rewriting the page. Its styling stays in it as it was written, so the page looks the same everywhere it is drawn as a page, and a copy of the wiki carries it whole. An export carries the parts that still apply, kept to that page. The exception is a short list that saving the page takes out of it: instructions that open panels over the window or take the keyboard, positions pinned to the window or set for all four edges at once, which box sits on top of which, and web addresses tucked inside styling — and, from styling written directly on a single paragraph or word, anything that would make part of the window a handle that drags it.

Find, automatic links, boards and maps leave it alone. Find in page, and replacing with All, pass over a page's styling, so a word inside it is never counted as a match or changed; automatic page-name links never make a link inside it; and on a board or a map, styling at the start of a card or a thought is passed over when its title or its words are read — so a card sent to a paper page is titled by its first line, and the styling goes along in its body.

If a page doesn't look quite as it did

  • Its typeface is different. The page probably carried a font inside itself, which is one of the things left out. A typeface the page names is still used when this Mac has it, so installing that typeface usually brings the look back.
  • A background or a color it used to spread across the whole window is gone. That was styling aimed at the window rather than at the page's content. The rest of the page's look stays.
  • Lines in a Mermaid diagram that used to move stand still. A diagram's styling is treated like a page's, and animations are left out.
  • Something in the rest of MojoPad changes while a page is open, or a page shows without its own look in one particular place. Neither should happen. Save a diagnostic report, as described at the end of this section, and send it, saying what was on screen.

In exports and on the web share

Each page's styling goes with that page and only that page: in a whole-document PDF, a web export, a compiled folder, the blog, and a page with other pages embedded in it. Pages that name their styles the same way no longer take on each other's look in one file. In an ePub, a page embedded in a chapter still shares its styling with that chapter. On the web share, a page's styling stays in the page's column. See Exporting and The Web Server.

Checking it in the diagnostic report

Help ▸ Save Diagnostic Report… has three lines together in its Rendering section, the first beginning page styles, counted across every open window:

  • The first says how many page boxes are showing, and how much page styling is confined to its page.
  • The second holds two numbers marked should be 0. The first of them counts styling held back because MojoPad drew a page somewhere it didn't treat as a page — you would see that page without its own look in that one place. The second counts styling still reaching MojoPad's window — you would see part of the app change while a page is open.
  • The third says how much styling was left out, counted over the session.

If either number that should be 0 isn't, send the report and say what was on screen. The lines hold counts only — never the styling itself, and never a word from your pages. Each window updates its counts within about half a minute of a change, so a report saved in the first moments after opening says no window has reported yet; wait a moment and save it again.

Saved web pages keep their own pictures

A page you save is only as durable as what it points at. If it borrows its pictures from the site it came from, then the day that site reorganizes or closes, the page you saved so carefully is a column of broken frames — and you find out years later, when it is far too late to go back for them.

So MojoPad fetches them once, while it is saving, and keeps them in your document. A saved page opens the same with the network switched off, and opening your own notes never tells anyone else you did.

Pages saved before this still point outward. Open one and run Keep This Saved Page’s Pictures in the Document from the command palette (⇧⌘P) — it fetches what is still there and tells you if anything has already gone. Worth doing on anything you would be sorry to lose.

Two things it will not do: fetch from an address on your own network or machine rather than out on the web, and store anything that comes back that is not a picture. A saved page is something written by someone else, and it is not given the run of your Mac.

Pictures come across beside your pages, not inside them

This matters more than it sounds, and only on a big archive. A VoodooPad page keeps its pictures beside it. MojoPad does the same — each picture becomes a file in your new document, and the page simply points at it.

It used to write them into the page instead, as text, and on an archive built up over decades the difference is not subtle: the pictures can come to most of what the whole document weighs. Because MojoPad reads all of a page before it can show it to you, that is a wait every time you open the wiki — for pictures you are not looking at. Stored beside the pages, they cost nothing until you look at one.

A picture that appears on many pages is stored once. An archive built up over decades repeats itself — the same letterhead, the same scanned figure, pasted a hundred times — and paying for those bytes once is the difference between a heavy document and an absurd one.

If a picture cannot be read at all, the page says so where the picture was, rather than leaving a silent gap. You will know something was there.

Your to-do lists arrive as to-do lists

A VoodooPad checkbox is not a character — it is a little file tucked inside the page. That meant a page of them used to arrive as a column of broken attachments, which is a poor welcome for a to-do list you have kept for years. They come across as real to-do rows now, each one still checked or unchecked as you left it, and a run of them gathered into a single list the way it looked on the page.

You can see the effect in Help ▸ Save Diagnostic Report, which counts pictures written into the pages for every open document. On a document imported before this it will be a large number; on a fresh import it should be nothing.

Notes

  • Your .vpdoc is opened read-only and never modified.
  • VoodooPad's encrypted pages can't be imported encrypted (the cipher differs); decrypt them in VoodooPad first, then encrypt again here.
  • Import is repeatable — try it on a copy, poke around, import again for real.
  • A document imported before this keeps its pictures where they were. Importing the .vpdoc again into a new document is the way to get the lighter shape.