Skip to content
Developer Codex
Organization

Define and Manage Properties

Properties are the structured fields of your world’s data. A “Character” type might have a “Birth Year” number property and an “Allegiance” text property. A “Spell” type might have a “Difficulty” select property with options “Novice”, “Adept”, “Master”. Once a property is defined and attached to a type, every page of that type carries that field in its properties panel.

Inklings supports the following value types for property definitions:

TypeAcceptsExample
textAny string"Court Mage"
numberNumeric values34, 1.5
yes/noTrue or falsetrue
dateISO date strings"1987-04-12"
selectOne option from a predefined list"Draft"
multi_selectMultiple options from a predefined list["Action", "Mystery"]
relationA reference to another page

The value type is set when the property is created and cannot be changed afterward.

Property definitions are workspace-scoped — you create them once and can attach them to multiple types.

  1. Open Settings → Properties or the property management surface.
  2. Click + New Property.
  3. Enter a name (for example, “Birth Year” or “Allegiance”).
  4. Select a value type.
  5. For select or multi_select types, add the predefined options with optional colors.
  6. Confirm to create the property.

Inklings derives an identifier from the property name (“Birth Year” becomes birth-year). The identifier is how property values are stored and referenced internally.

Creating a property definition does not automatically associate it with a type. You link them explicitly:

  1. Open the type management surface (Settings → Types).
  2. Select the type you want to add the property to.
  3. Click + Add property and select the property from the list.
  4. Confirm.

The property now appears in the properties panel for every page of that type. The type’s property list reflects the new addition immediately.

Unlinking a property from a type removes it from that type’s structure but does not delete the property definition itself. The property can still be attached to other types or set as a freeform property on any page.

  1. Open the type management surface and select the type.
  2. Find the property in the type’s property list and click the remove action.

Open the page and navigate to the properties panel in the context sidebar. Find the property field and enter or select a value.

Property values set inline in the editor use the {{name:value}} format in the underlying markdown. For example, {{status:published}} sets the status property to “published”. Values set via the panel and values set inline are synchronized — they represent the same property data.

Set the value to empty in the properties panel. The property is removed from the page entirely.

If a property has a registered value type, Inklings validates the value when you set it. Passing a string to a number property, or passing a non-array to a multi_select property, returns a validation error. The page’s existing property values are not modified on a validation failure.

Freeform property identifiers — those that do not match any registered property definition — bypass type validation and are stored as arbitrary property values.

Property values are indexed in full-text search. If you set protagonist: "Lira the Cartographer" on a page, searching for “Lira the Cartographer” in the command palette returns that page even if the name does not appear in the title or body text.

Was this page helpful?