DunneNote documentation
DocsDunneNoteConcepts

Notebooks, pages and canvases

Shipped

The three-level model everything else in DunneNote is built on.

DunneNote has three levels, and understanding them explains most of the rest of the application.

Notebook

A notebook is a directory ending in .calnote. It is the unit of storage, the unit of backup, and the unit of portability. Everything a notebook needs is inside it: its database, its images and attachments, and a manifest that says what format version it is written in.

Notebooks are independent of one another. Opening one does not require the others to be present, and a notebook copied to a different machine opens there without any setup.

Each notebook carries a stable identity that survives being moved or renamed, which is what allows links between notebooks to keep working after you reorganise your disk.

Page

A page belongs to a notebook and can be organised into sections. A page is not a document — it is a surface. It has no single body of text. What it has is a collection of canvases arranged on it.

This is the key departure from a word processor. If you want a paragraph of notes, a table of figures and a sketched diagram on the same page, you do not embed two of them inside the third. You put three canvases on the page.

Canvas

A canvas is a bounded region of content of one particular kind. Six kinds exist — Rich Text, Spreadsheet, Database, Calendar, Picture and Sketch.

Every canvas is page-scoped. It is attached to the page it was created on, it moves with that page, and it never renders anywhere else. There is no global canvas pool and no canvas that lives outside a page.

Canvases are objects

The single most useful thing to know about canvases is that the interface treats them as objects rather than as regions of a document. You select a canvas the way you would select a shape in a drawing program: it becomes the current object, with a visible selection, and the toolbar changes to show what can be done to it.

To edit inside it, you enter it. To stop editing, you leave it. This is what makes one keyboard model work across six very different content types — the outer layer is always the same, and only the inner layer differs.

The keyboard model covers this in full.

Groups

Canvases can be collected into groups that move as one. A group is how a caption works: a transparent Rich Text canvas grouped with a Picture is a captioned image, and because the caption is a real rich text canvas it gets the full formatting capability for free rather than a stripped-down caption field.

What this buys you

Because a canvas is a first-class object with a kind:

  • Search can report a hit as “this cell, in this grid, on this page” rather than as a position in an undifferentiated blob of text.
  • The toolbar can offer exactly the operations that apply to the selected thing, and disable the rest, instead of showing every control at all times.
  • A new content kind can be added without disturbing the existing ones — the Sketch canvas was added this way.