EM4me

Features

All app features at a glance, grouped by area. In-depth descriptions with examples live on the topic pages of the manual. Shortcuts in the access column name the rebindable default binding (“default …”); hard-wired inputs (e.g. Tab in lists) appear without that prefix. The currently effective shortcuts are shown on the Keyboard shortcuts page.

File and session

Feature Description Access
Open files Open Markdown files via dialog, drag-and-drop, “Open with” in the file manager, or the recent-files list. File → Open File… (default Ctrl+O); drag-and-drop; “Open with” in the file manager; File → More File Functions → Recent Files
Open file by name Opens a file by typing part of its name, without going through the folder structure or the full-text search. It searches file names and frontmatter aliases; with no input the most recently edited file is on top, with input the names beginning with it come first. The search space is the open area, otherwise the neighbourhood of the active file. File → Open File by Name… (default Ctrl+T)
New tab Opens an empty “Untitled” tab in the active window, in edit mode with split view. The first save opens Save As. File → New File (default Ctrl+N)
Create subpage Creates a new subpage of the active page: a dialog asks for the name, the file is created in the folder of the active file and opens as a tab. Works at any level, including on a subpage. Menu File → More File Functions → New Subpage…
Rename file Renames the active file. Open tabs, bookmarks, recent files and the history companion file follow along. A page with subpages takes its whole subpage tree along; for a subpage only its own name segment changes, and an explicit option in the dialog releases the full name. Menu File → More File Functions → Rename…, tab context menu
Update links on rename When renaming, the app also updates incoming references from other files: wiki links, embeds and relative Markdown links. An optional preview shows the affected files beforehand, a report lists the changes afterwards. In an area application the update covers the whole area, otherwise the known search scope. Rename dialog (checkbox), Settings → Behavior → Links when renaming
Detach subpage Detaches a subpage from its parent page: it becomes a standalone page, its own subpages move along, and incoming links are updated. The target name can be changed beforehand in case a file of that name already exists at the target level. Menu File → More File Functions → Detach from parent page…, tab context menu
Title line Shows the file name without extension as a sticky title line in heading style above the document, without a line number; subpages appear with their full logical name, with the parent part dimmed and unchangeable. A click makes the title editable — on a subpage its own name segment, otherwise the whole name: confirming renames the file directly (including link updates), for unnamed documents the save dialog opens with the name prefilled. Manual and system pages have no title line. Automatically above the document in all views; click the title to rename, Enter confirms, Esc discards
Splitting large documents Splits a very large document into several files when saving and joins them back into a single document when opening. Cuts are only made at a heading of the top two levels; without one the document stays undivided. The parts live in the same folder, carry the document name with an addition and remain individually readable Markdown files. The first split is announced and can be declined. Happens automatically when saving
Rejoin parts Merges the parts of a split document back into a single file and deletes the part files. Runs only on this request, never on its own. If the result is larger than the threshold, a warning states beforehand that the next save will split it again. Menu File → More file functions → Rejoin parts…
Templates Templates are Markdown files in a configurable templates folder. When applied, placeholders such as date, title, clipboard, or input and selection dialogs are filled in; new files are created from a template, or the template is inserted at the cursor position. File menu → More File Functions → New File from Template…; editor context menu → Insert → Insert Template
Folder rules Folder rules fill new files with a template automatically: each rule maps a target folder to a template, the deepest match wins. They apply to files created via the app; the templates folder is excluded. Settings → Templates
Journals Journals are series of periodic documents per area: day, week, month, quarter or year, with folder and name patterns built from date placeholders, an optional template and four automatic properties in the frontmatter (journal name, period date, period start and end) that can also be added to existing entries. Shelves group several journals; entries are opened or created on demand. Weeks strictly follow ISO 8601 (Monday start, Thursday rule). Menu File → More File Functions → Today’s Journal Entry / Journal Entry for Date…
Journal navigation Navigation block inside a journal entry: shows the current period prominently, links the parent periods of the same shelf and pages to the previous and next period with arrows. Clicks open the entries and create missing ones; outside a journal entry a hint appears. The arrows page within the same tab and keep its view mode; the links to the parent periods still open a tab of their own. Below the label the block always states how the period relates to now: today, yesterday, 3 weeks ago, in 2 years — counted in the unit of the period itself. Each paging button carries the name of its target period next to it, and a dot marks every period whose entry already exists. perspective-journal-nav code block
Journal timeline Timeline block inside a journal entry: shows the period overview in four modes, as a week row, a month calendar, a quarter of three months or a year of twelve months. Week-number column and weekday header starting on Monday, dots on days with an existing entry, today and the mode’s own level highlighted. Every element opens its period and creates missing entries; the journals of the entry’s shelf are what counts. Outside a journal entry a note appears instead. perspective-journal-timeline code block with mode: week, month, quarter or year
Save Save and Save As. Unsaved changes are marked with • in the tab and window title; closing a modified tab shows a confirmation dialog. Before writing, the state of the file is checked: if it changed outside the app, you are asked whether to reload or keep the local version. If the local version is kept, the overwritten one remains available in the document history. File → Save / Save As… (default Ctrl+S / Ctrl+Shift+S)
Auto save Optional: auto-save. Saves 2 seconds after the last edit or on window focus loss. Tabs without a path (“Untitled”) are not auto-saved. If a file changed outside the app, it is not written; a status bar message reports this, and the decision is made when saving manually. File → More File Functions → Auto Save
Document history Records changes to a document as a revision history in a companion file (Markdown data, .mdd) next to the document. Consecutive saves are combined into change packets via configurable time windows; changes made outside the app are detected on open and save and recorded as a separate packet. Each change packet also records the login name and the machine it originated from; this is a statement of fact at the time of the change, not a managed user account. Settings → Behavior → Document history
History switch Switches history recording on three levels: per document (YAML property history), per area (area file Area_Settings.mdda), and app-wide. The file level overrides the area level, which overrides the app setting; switching off only pauses, existing history is kept. The statusbar icon shows the effective state and its origin. Statusbar icon Document history, Settings → Behavior, YAML property history
History view Shows the revision list of a document with time, trigger, and extent of changes. Every revision can be viewed, two states (including the current state) can be compared line by line, and an old state can be loaded back into the editor; saving then creates a new revision. The view’s tab sits immediately to the right of its document’s tab and moves along as soon as the view shows another document. View → Document history, statusbar icon Document history
Document note Keeps a single note per document, separate from the content and stored in the companion file (Markdown data, .mdd). It supports Markdown with a toggleable rendered preview, is saved automatically, and unlike the history has no revisions; when edited in several windows, a conflict hint appears. View → Sidebar → Panels → Notes, statusbar icon Notes
Block metadata Attaches structured, typed properties (text, list, number, true/false, date, multiline) to individual blocks of a document, anchored to the block anchor and stored in the companion file (Markdown Data, .mdd). They are maintained in a sidebar panel that follows the cursor and also handles orphaned data and anchor renaming. Blocks with properties carry a subtle indicator in the rendered view and in live mode; clicking it opens the panel. View → Sidebar → Panels → Block properties, statusbar icon Block properties
Storing attachments A file from the clipboard or the file manager is stored automatically when pasted or dragged in, and linked in the text. The storage location is configurable, globally and per area; images receive an image reference, other files a link. An existing file name is never overwritten. Default Ctrl+V, or drag a file onto the editor or rendered pane
Opening an attachment A reference to an attachment opens it in the program assigned by the operating system. Only targets inside the area or the document folder are opened; for files that can execute program code, a confirmation appears first. Click the reference; double click for images in the editor
Portable export Saves the current file as portable Markdown. Perspective tables are replaced with inline HTML tables, so the file also renders as a real table in other Markdown applications. Mermaid diagrams are burned in as a finished image, always drawn light; a faulty diagram stays a code block. Details on the ‘Perspective Table’ manual page. File → More File Functions → Export → Portable Markdown…
Printing Prints the content of the active tab directly on a printer, without the detour via a PDF file. The operating system’s print dialog selects printer, page range, copies and duplex; page size, orientation and margins are pre-filled from the ‘Export’ settings section. Printing follows the active view just like the PDF export: the source view prints raw Markdown with syntax highlighting, all other modes print the formatted document. The printout is always light, even in the dark theme. File → More File Functions → Print… (default Ctrl+P)
PDF export Prints the content of the active tab to a PDF file — the rendered view as a formatted document, the source view as raw Markdown with syntax highlighting and line numbers according to the tab setting. The PDF is always light, even in the dark theme; formulas, diagrams, code highlighting, callouts and perspective tables appear as in the preview. Page size, orientation and margins are set in the ‘Export’ settings section. File → More File Functions → Export as PDF… (default Ctrl+Shift+P)
Auto reload Changed files are reloaded automatically; deleted files are marked with a strikethrough in the tab; on reload, queries, embeds, backlinks and the graph view are updated as well. automatic on external change
Restore session Session (tabs, columns, views) is saved on exit and restored on next launch (can be turned off). Help → Restore Session
Keep drafts New documents that were never saved survive quitting: their content is stored and reopened as untitled tabs on the next start, independently of session restore (can be turned off). Settings → Behavior
Remember window state Window position, size, and maximized state are remembered on exit and restored on next launch. automatic on exit
Workspaces Named workspaces keep a logical application with all its windows, tabs, tab groups and area binding permanently stored and update themselves automatically while you work. Opening restores all windows at their last state, closing freezes the state; creating, renaming, color coding and deleting are handled in the management dialog. Windows of an open workspace carry its color in the window title bar (theme-matched variant; requires Windows 11, otherwise the standard title bar remains). File menu → Workspaces
Books A book ties several Markdown files into a fixed reading order: the book folder holds the book file and a companion file carrying the chapter tree, while the chapters themselves stay ordinary files that remain readable on their own. An open book is its own application with its own window: the book folder is its working space, the window title carries the book name, and two books are never in the same window. A panel shows the table of contents, maintains the structure (create chapters, attach and detach, reorder) and pages forward and backward across chapter boundaries. Chapter files can be moved within the book folder; references and the chapter tree follow along. File menu → Book and Bookshelf → Open Book…, New Book…, Close Book; View → Sidebar → Panels → Book; context menu of the book panel
Table of contents of the book A sidebar panel shows the chapter tree of the open book in its declared order; a click opens a chapter, and the one currently being read is highlighted. Below it sits the section “Not linked in” with the Markdown files of the book folder that hang in no chapter. A declared chapter whose file is gone stays visible and is marked as missing. View → Sidebar → Panels → Book; Book button in the status-bar strip; command palette
Maintain the chapter structure The outline of the book is maintained right in the table of contents: dragging the marker in front of a chapter name reorders, links in and nests; on the focused entry, Alt plus the arrow keys move the same chapter together with its sub-chapters. The context menu creates a new chapter and links a file in and out again. Only the declaration in the companion file changes, no file is moved. book panel: dragging the marker in front of a chapter name; on the focused entry Alt+↑ and Alt+↓ to reorder, Alt+→ and Alt+← to nest and unnest; context menu “New chapter”, “Link in”, “Unlink”
Reading guidance through the book Pages forward and backward through the book, beyond the boundary of the single file. The step follows the reading order of the table of contents, in which a chapter comes before its sub-chapters. There is no wrap-around at the start and the end of the book, but a note in the status line; files that are not linked in stay outside the guidance. forward and back buttons in the header of the book panel; command palette (default Ctrl+Alt+Page Down and Ctrl+Alt+Page Up)
Move chapter file Moves the file of a chapter into another folder inside the book folder. References to the file follow along, and the entry keeps its place in the chapter tree together with its sub-chapters, because the folder location says nothing about the outline. A target outside the book folder and a file name already taken there are rejected. context menu of an entry in the book panel → “Move chapter file…”; command palette
Repair missing chapters A declared chapter whose file is no longer in the expected place stays in the table of contents and is marked as missing. If a file with the same name exists elsewhere in the book folder, it appears as a suggestion; nothing is carried out on its own. The context menu reassigns the chapter to a file, from the suggestion or through the file dialog, or unlinks it. context menu of a missing entry in the book panel → “Reassign…” and “Unlink”
Bookshelf A bookshelf groups books: the shelf folder holds the shelf file (descriptive text; properties and image reference in the frontmatter) and a companion file that names the shelf file and lists the assigned books; the books live as book folders directly below. An open shelf is its own application with its own window, limited to the shelf folder; every reach into a book leads to that book’s own window. Shelves can be created, opened and extended with books; book folders not yet assigned appear in the view as their own section. An open shelf survives session restore. File menu → Book and Bookshelf → Open Bookshelf…, New Bookshelf…, Close Bookshelf; opening the shelf file
Shelf view An open bookshelf appears as its own page in the tab system with two switchable layouts: tiles show the book images as a grid (without an image reference, a placeholder tile with the book title), rows show image, name, chapter count, author and description. A click opens the book; the chosen layout is remembered per shelf. opens when a bookshelf is opened; tiles/rows switch in the view
Creation and modification time Maintains two frontmatter fields automatically when saving: the creation time from the file’s creation date and the modification time from the moment of saving. Field names, format (date or date and time) and the creation of missing fields are configurable; an existing creation time is never changed. Settings → Extensions → Creation and modification time; configuration in Settings → Timestamps.
Settings export and import Writes your own setup to a readable Markdown file and reads it back in elsewhere: behaviour and appearance, color schemes, keyboard shortcuts, format toolbar, status bar buttons including macros, sidebar arrangement, templates, bookmarks, the on/off state of the extensions and the calendar systems of the open area — for those optionally just a single block, in order to pass it on to another area. Before the export you choose which data kinds go along; before applying, a preview shows what is added, replaced, renamed or skipped, whereby what you created yourself is added and stays untouched where a name already exists. Session state, machine-bound details and the storage space of external extensions never go along. File → Settings → Export… / Import…; My Extended Memory page
Your own interface language You can translate the interface into a language EM4me does not ship: download the language template, translate it in your own editor and load it back in as your own language. The loaded language then appears in the language selection of the status bar alongside the built-in ones. Entries your own file does not know appear in English; an updated version of your file carrying the missing entries can be saved and completed at any time. File → Your own language → Download template… / Load… / Remove… / Update…; language selection in the status bar

Editing

Feature Description Access
Edit mode Edit Markdown content. Edit mode works in Source, Split and Live view; clicking the pencil in Reading view switches to an editing view and activates the editor. Which one is configurable (Split by default); anyone working mostly in Live view sets it there. Pencil in the status bar; View → Edit (default Ctrl+E); target view under Settings → Behaviour
List indentation Tab and Shift+Tab indent or outdent a list item together with its sub-items by one level. The depth follows the item above so that the nesting also takes effect in the rendered view. Indenting only works where there is an item above for the current one to move under. Tab / Shift+Tab in the editor
List structure List items can be moved up and down together with all their sub-items; the jump always spans the entire neighbouring branch and the level stays unchanged. The command “Select subtree” marks an item with everything below it, as a basis for copying or cutting whole branches. Default Alt+Arrow Up / Alt+Arrow Down; command palette: Select subtree
Automatic numbering Numbered lists renumber themselves in the source as soon as you work in them: after moving and indenting as well as after inserting or deleting lines. A list keeps its starting number. A blank line begins a new list; if it arises from your edit, the list below starts again at 1. Source text and rendered view show the same numbers. applies while editing numbered lists
Continue and end lists The Enter key continues a list and adds a bullet, a consecutive number or an empty checkbox. On an empty sub-item it outdents by one level; on the top level it ends the list and leaves an empty line behind. Enter key in the editor
Table editor Tab and Shift+Tab jump between cells in a pipe table inside the editor. Tab at the end of the last row creates a new table row with the same column count. Enter at the end of a row does the same; double-Enter on an empty row leaves the table. Tab / Shift+Tab / Enter in pipe tables
Table editing in live mode Pipe tables can be edited in place in live mode: a click hits the cell, Tab and the arrow keys move from cell to cell, and the table stays laid out instead of unfolding into its source. Changes are written back into the Markdown source, with undo and redo as when typing. For a table’s raw syntax, use the source or the split view. Live view → click into a table cell
Table tools Editing operations for both table types at the cursor position: column alignment (left, center, right), moving, inserting and deleting rows and columns, and transposing. The submenu appears only when the cursor is inside a table; each operation is a single undo step, and pipe tables are reformatted with aligned columns. In Perspective tables with colspan or rowspan cells, column operations and transposing are rejected with a hint. Right-click in a table → Table; all operations also via the command palette, shortcut assignment under File → Settings… → Keyboard shortcuts
Insert timestamp Inserts the current date and time as yyyy-mm-dd hh:mm at the cursor position; an active selection is replaced (in edit mode). default Ctrl+Shift+D
Date and time entry Opens a calendar popup with a time entry and inserts the selected value at the cursor position; date and time can be enabled individually (formats 2026-07-10, 14:30 or combined). In the editor, the character sequence ;; also opens the picker. Values in these formats, whether inserted or typed by hand, are clickable in the editor (source and live mode) and can be changed through the pre-filled picker. default Ctrl+Alt+T (date and time), Ctrl+Alt+D (date only), Ctrl+Alt+U (time only); typing trigger ;; in the editor; click a value in the editor
Full-text search Full-text search with live matches, regular expressions (.* toggle) and case sensitivity (Aa). The question mark in the search bar shows a regex quick reference. default Ctrl+F
Search and replace Search and Replace in edit mode, with regex backreferences ($1, $2, …) in the replacement text. “Replace All” is a single transaction — Ctrl+Z undoes it as a whole. default Ctrl+H (in edit mode)
Search scope The search scope follows the tab you search in: a manual page covers the whole manual, the settings all of their sections, a file in an open area the whole area, a single file only itself. Matches appear grouped in the sidebar panel, and a click jumps to the location. Default Ctrl+F; the scope follows from the tab and is shown at the left of the search bar
Area search With an area open, the search covers every Markdown file of that area instead of just the open file. Matches appear grouped by file in the sidebar panel, with the open file first and with its unsaved state. A click opens the file at the match, and stepping onwards continues past the file boundary. Default Ctrl+F in a file of an open area; result list in the «Search results» panel
Area-wide replace In an open area the search also replaces: the results list gets a checkbox per match and per file and thus becomes the preview; “Replace all” runs over the selected positions, including in files that are not open at all. Every changed file gets its previous version into the document history, even with history switched off, and a report afterwards names what was changed, what was skipped and what has changed since the search. Default Ctrl+H in a file of an open area; selection and the “Replace all” button in the search bar
Markdown linter Markdown linter light subtly marks seven typical issues in the editor: bare URLs (without Markdown link syntax), empty link texts, missing alt texts, wiki links with no resolvable target, broken wiki anchors, unknown callout types and unpaired comment markers. Hover shows an explanation. automatic in the editor
Spell checking The spell checker of the operating system marks misspelled words in source and live mode. A right-click on a marked word shows correction suggestions and can add it permanently to the dictionary. Checking uses the language of the operating system, independently of the interface language. Settings → Extensions → Spell checking; switch in Settings → Spell checking; corrections via the editor context menu
Perspective tables Tables with multi-line block cells via a perspective-table code block with its own line-based syntax. Details and examples on the ‘Perspective Table’ manual page. code block perspective-table
Perspective tables extended Perspective tables additionally support sortable headers ({|+sortable), status highlighting (|.error, |-.warn etc.) and column-default alignment ({|+cols="left right right"). Details and examples on the ‘Perspective Table’ manual page. syntax additions in the {| line
Frontmatter YAML frontmatter at the start of a file (between ---) is recognised as metadata and kept separate from the document body. The source pane shows the block with a subtle background. --- block at the top of the file
Properties sidebar The properties sidebar shows frontmatter fields live-editable with type inference (text, list, date, number, boolean, multiline). Changes follow the auto-save setting. status-bar icon; View → Sidebar → Panels → Properties (default Ctrl+;)
Value suggestions from existing entries Clicking a value field in the properties panel offers the values already used for that property in the area, in alphabetical order; each character typed narrows the list. Where a property profile defines a set of values, both origins appear together and stay distinguishable. If the property occurs nowhere in the area, no list appears. Click a value field in the properties panel; can be switched off under Settings → Extensions
Property profiles Central field definitions for properties: profiles are Markdown files in a profile folder of the area whose frontmatter defines per field a name, a type, optionally a fixed value range (single or multiple choice) and a default value; the field name is the only required property, and the format already provides for type-specific options, value pool sources and nested child definitions. Documents assign themselves via a frontmatter field; a default profile applies to all files of the area. The properties editor and the block properties panel suggest the defined fields, offer value ranges as pick lists and show a soft hint on deviations without blocking the input; the profile list in the settings names faulty definitions precisely (definition, property, expectation). Details on the «Property Profiles» manual page. Since the type expansion the set additionally knows a link to a file and a time of day, number, date, link and choice carry type-specific options, and the multiple mode applies to every type for which several values make sense. A profile can carry a symbol that shows at the document which profile applies. Settings → Property profiles; assignment via the frontmatter field (default class)
Profile inheritance A profile inherits the field definitions of a parent profile (extends), can exclude individual inherited fields (exclude) and overrides an inherited field with an own field of the same name. Chains across several levels are possible; the resolution remains a single ordered sequence alongside multi-assignment, and a cycle or a missing parent profile only produces a hint on the profile. Details on the «Property Profiles» manual page. Properties extends and exclude in the frontmatter of a profile file
Bulk-fill of profile fields Adds all still-missing fields of a property profile in one step. Existing values and their order stay untouched; missing fields are created with their default value, otherwise empty per type (number 0, boolean false, text, date and list empty). It works in the properties editor and the block properties panel. Click the profile name in the suggestion menu of the add button (properties and block properties panel)
Value sets from note and query A choice field’s permitted value set comes either from the fixed list in the definition, from an ordinary note with one value per line, or from a query across the collection. A value note is refreshed like a profile file: changing it takes effect without a restart, including from outside. A query is evaluated only once a field needs its values, and is remembered until the collection changes — nothing is computed up front across everything. If a source is missing or returns nothing, the field stays usable, the value set is empty, and a note appears at the field. valuesFrom with note or query in the field definition of the profile file
Assignment by tag and folder A document can find its profile through a tag or its folder, without carrying an assignment field. The bindings are configured per area; a bound folder includes its subfolders. Resolution remains a single ordered sequence in four steps — assignment field, tag, folder, default profile —, the paths add to each other, and for the same field name the first match wins. So that it stays readable why a document has its fields, the properties section header shows the symbol of the resolved profile along with the step it was found through. Settings → Property profiles → Assignment by tag and folder
Document field form Below the fields of the document, the properties section shows an expandable area listing every field its profiles define and the document does not yet carry. Above it stands the chain of applicable profiles: for each level the icon, the name and the path by which the profile applies; inheritance depth appears as indentation, and from the first inherited level onwards the line reads “inherited” instead of the path. The fields missing at a level can be adopted in one step — with a type-appropriate empty value, leaving existing values untouched, as a single undo step; a level with no missing fields offers no adoption. Every field carries the icon of the profile it comes from. A field not yet adopted stays out of the metadata block as long as it is empty: merely expanding the area writes nothing. Properties section → “All fields of this document”; command “Open the document field form”; tab context menu → “Open field form”
Per-profile view as a generated query A command writes the query for a profile’s documents at the cursor position. It covers all three explicit assignment paths — the assignment field as well as the profile’s tag and folder bindings — and a folder binding includes its subfolders. If the chosen profile is the area’s default profile, the query covers all documents. Documents of an inheriting profile stay out: they carry its fields but are not the same thing. The inserted block is an ordinary query and can be edited afterwards; it reflects the assignment at the time it was generated and does not follow later changes to the bindings. Command “Insert profile query”
Derived fields A profile can declare fields that do not hold their value but receive it: a formula field calculates from the other fields of the same document — with the same language and function set as a query column —, a collection field gathers the documents that point to this one through a named field. Both are produced when displayed and therefore do not appear in the metadata block: opening a document does not change it, and the value is always current. In both property editors they appear as not editable. If two fields refer to each other in a circle, or a calculation rule names a field that does not exist here, the value stays empty and carries a note — nothing is blocked. Because such a value is not in the file, it also carries no query condition; where that matters, let the query calculate instead. Profile file: type: formula with options.expression, type: lookup with options.relatedField and optionally options.from
Structured fields A field can hold an object with named child fields or a list of similar objects — a “meeting with three participants” no longer needs three parallel lists for name, role and company whose connection lies solely in their order. The child fields are nested in the profile file and can carry any type, including another object. Both property editors show them stacked: child fields indented under their field, list entries as groups that can be added and removed. A child field that is not set yet stays visibly empty instead of being prefilled, and is not written along. In the metadata block the values appear as an ordinary nested structure and thus remain readable without the application. Structured values stored on a paragraph do not appear in the area index and carry no query condition there. Profile file: type: object or type: objectlist with a nested fields list
Perspective query Embeds a dynamic, clickable file list or table in the document: a perspective-query code block with a query over frontmatter properties and file fields (name, folder, times, size, tags, links) lists all matching files of the search scope and keeps them up to date. Conditions support comparisons, date and duration arithmetic and a function catalog. Details and examples on the «Perspective Query» manual page. perspective-query code block
Query sources The source selection narrows the query scope before the condition: by folder, by tag (hierarchical) or via link relations (files linking to a target, or files a target links to); combinable with and/or, parentheses and negation. FROM clause in the perspective-query code block
Query table The query can output a table instead of the list: freely definable columns from fields or expressions, column titles via alias, and an optional file column. File column and link values stay clickable like list entries. TABLE clause in the perspective-query code block
Query sorting and multi-column layout Result lists and tables can be sorted on multiple keys (ascending or descending, type-aware by number, date or text; missing values go last) and capped with a limit; result lists can flow into up to eight columns. SORT, LIMIT and COLUMNS clauses in the perspective-query code block
Block query The query can return blocks instead of files: the BLOCKS scope addition evaluates the block properties of the documents, including the updated timestamp; frontmatter and file fields of the carrying file remain usable in conditions. Hits appear as clickable targets of the form File#^anchor, and clicking jumps to the block. Details and examples on the manual page «Perspective Query». BLOCKS scope addition after LIST or TABLE in the perspective-query code block
Query self-reference A query can refer to its own host file instead of only to the hits: the this. prefix reads that file’s fields and frontmatter properties (this.file.link, this.area), the empty wiki link as a source collects the files linking to it, and outgoing with an empty target the opposite direction. The same query text therefore evaluates differently in every file; without a resolvable host file the reference stays empty instead of matching too much. this. prefix and empty wiki link [[]] in the perspective-query code block
Query value building blocks Building blocks for composed result columns: file.day reads the date from the ISO prefix of a file name, days turns a duration into whole days, numberformat and currencyformat render numbers and amounts localised, infolder narrows a link list to one folder. The plus sign also joins date, duration and link values with text. The three formatters follow the language set for the program. Field file.day and the functions days, numberformat, currencyformat and infolder in the perspective-query code block
Highlighting in query results The bold function highlights a value or a part of a composed expression, alike in table cells, in the extra field of a list entry and in the group title; the marking survives concatenation with further parts. Cell contents evaluate no Markdown, so an asterisk in the text stays literal. Comparison, sorting and grouping keep working on the plain text. Function bold in the perspective-query code block
Perspective Datatable Typed data table as a code block: columns with fixed value types (text, number, date, time, boolean) and an optional display format, a live-calculating aggregate row (sum, average, min, max, count), and computed columns using the expression language of the Perspective Query. Details and examples on the manual page «Perspective Datatable». A column heading can carry its own display text instead of the column identifier, and the type shown beneath it can be switched off per table. Code block perspective-datatable
Data table grid editing Data table values are edited directly in the rendered grid: type-validated cell input, direct boolean toggle, adding and deleting rows. Every commit writes back into the code block; undo runs through the editor history. Click a grid cell in split view or live mode; Enter or F2 with cell focus
Data table sorting and filters Clicking a column header sorts the data table view type-appropriately (ascending, descending, removed); a toggleable filter row filters per column, with filtered aggregates and an «n of m rows» indicator. Pure view functions: the source stays unchanged, nothing is saved. Click the column header; filter toggle at the right table edge
Script blocks A code block with the language tag perspective-script runs JavaScript and embeds the result into the rendered document: free evaluations over the search space data (files, frontmatter, block properties) with list, table, and element output via the read-only pq API. Scripts run contained in an isolated sandbox without file and network access; without activation the block shows its source. Details on the «Script blocks» manual page. Code block perspective-script; execution via the «Run script blocks» setting (Settings → Behavior, default off)
Inline calculations Calculation expressions anywhere in running text: between the markers, the expression language of the Perspective query computes with numbers, parentheses, text, date and duration values as well as the function catalog; the formatted result is displayed while the source keeps the expression. Faulty expressions show a subtle error mark with a hint in the tooltip. Syntax {= expression =}; \{= for a literal {=
Block anchors Block anchors ^id at the end of a line set a named anchor on the surrounding block (paragraph, list item, table, code block). Referenceable via [[File#^id]]. syntax ^id at the end of a line
Block anchors in live mode In live mode a block anchor appears as a discreet marker at the end of the line instead of the raw ^id. Hovering names the identifier, a click puts the caret at the end of the line and reveals the raw text for editing; when the caret is already in that line, the anchor stays visible as usual. The rendered view still hides the anchor completely — live mode deliberately shows that the block is a link target. If the same block carries properties, their marker sits next to it. Live view → marker at the end of the line
Autocomplete Autocomplete dropdown while typing: [[ suggests file names and aliases, [[File# heading anchors, [[File#^ block IDs. # in the body suggests tags. Arrow keys navigate, Enter/Tab selects, Esc closes. As long as nothing is typed after [[, the most recently changed files appear at the top; accepting a suggestion also writes the closing brackets. After #, the tags used more often in the area appear at the top; as soon as something is typed, match quality leads in both lists. [[ or # while typing
Callouts Callout boxes with > [!type] Title as the first line of a blockquote. Ten types (note, info, tip, success, question, warning, failure, danger, example, quote) with their own icon and accent colour; collapsible via + (open by default) or - (collapsed by default). syntax > [!type]
Highlight Text highlight with ==Text== renders as a yellow background span. Escaped \== stays plain. Inside KaTeX math blocks ($…$) the == is not interpreted as a highlight. syntax ==text==
Footnotes Footnotes as [^id] references in the body with [^id]: Definition at the end of the file, plus an inline form ^[Direct text]. Render shows superscript numbers with anchor links; at the end of the file a footnote section gathers the definitions with backlink arrows. syntax [^id] / ^[text]
Emoji shortcodes Emoji shortcodes such as :smile: or :+1: render as Unicode emoji; unknown codes and colon patterns (times, URLs) stay plain text. syntax :code:
Abbreviations Abbreviations via a definition line *[HTML]: Hyper Text Markup Language; every occurrence gets a dotted underline with the long text as tooltip. syntax *[abbr]: long text
Implicit figures An image standing alone in a paragraph becomes a figure with the alt text as a centered caption. image standing alone in a paragraph
Image sizes Image size directly in the syntax: ![Alt](image.png =300x200), also width only (=300x) or height only (=x200). syntax suffix =300x200
Definition lists Definition lists: term on one line, definition below introduced with : ; ~ works as marker too. definition line with :
Line blocks Line blocks for addresses and poems: lines starting with | keep line breaks and leading spaces. line start |
Custom containers Container blocks ::: type to :::; the ten callout types render in callout style (icon, color, title), unknown names as a neutral box. block ::: type to :::
Multi-column block Multi-column block ::: columns 2 to ::: with 2 to 5 columns; content flows automatically and balanced across the columns, a +++ line forces the column break. Invalid column counts fall back to the neutral container box; the PDF export renders the columns. block ::: columns <n> to :::; column break line +++
Subscript and superscript Subscript with H~2~O and superscript with x^^2^^ (double caret because the single ^ is taken by footnotes and block anchors). syntax ~x~ / ^^x^^
Underline Underline with ++text++ (renders as an ins element without insertion coloring). syntax ++text++
Heading attributes Custom heading IDs with # Title {#my-id} (wins over the automatic anchor) and inline spans [text]{.class #id}; only id and class are allowed. syntax {#id} / [text]{.class}
Spoiler Spoilers with ||hidden text||: rendered concealed, reveal on mouse hover or keyboard focus. Inside pipe table cells escape the pipes as |, otherwise the cell separation cuts the spoiler apart. syntax ||text||
Critic Markup Critic Markup for change tracking: {++new++}, {--old--}, {~~old~>new~~}, {==highlighted==} and {>>comment<<}. syntax {++…++}, {--…--} etc.
Comments Text between stays ordinary text. syntax %%comment%% (also multi-line); \%% for a literal %%
Extended task states Extended task states such as - [/] (in progress) or - [!] (important) as colored state boxes; the set including custom states is configurable. Each state carries a type and a follow-up symbol: the click follows the configured chain, only the Done type sets the done date and triggers the recurrence. syntax - [/] etc.; Settings → Task states
Task markers Task lines carry symbol markers for dates (due, scheduled, start; optionally with a time), six priority levels and a recurrence rule; all views show them as badges. On a state change the done and cancelled dates are created automatically, and completing a recurring task produces the next instance. symbol markers at the line end; Settings → Tasks
Global filter A configurable filter text decides which checkbox lines count as tasks (empty = all). Optionally the filter text is hidden in the views. Settings → Tasks → Global filter
Task queries With the scope addition TASKS the Perspective query lists individual tasks across the whole search scope: filterable over all marker fields (dates with relative date words, status type, priority, text, heading, tags), groupable on multiple levels via GROUP BY and with layout control through HIDE, SHOW and SHORT plus a hit counter. A global query from the settings is implicitly prepended to every task query. perspective-query code block with LIST TASKS or TABLE TASKS
Write-back from query matches Query matches are a work surface: the state box advances the status including automatic dates and recurrence directly in the source file, the postpone button moves the relevant date (tomorrow, one week, free choice via the calendar), the pencil button opens the edit dialog. Writing also reaches files that are not open; changed lines produce a notice instead of a blind write. state box, postpone and pencil button on the task query matches
Task dialog A form dialog edits task lines or creates new ones on empty lines: description, status from the configured set, priority, recurrence rule with a validation hint, the three manual dates via the date calendar, plus ID, predecessors and successors with a task search. Each application is a single undo step. default Ctrl+Alt+A; editor context menu → Insert; pencil button of the query matches
Task autocompletion On task lines the autocompletion suggests markers: dates via the date calendar, priority, common recurrence rules, status changes and the creation of a unique ID. Minimum typing length and number of suggestions are configurable; the typed word is replaced on acceptance. typing on a task line or Ctrl+Space; Settings → Tasks
Task dependencies Tasks carry IDs and predecessor references (finish-to-start relations). A task is blocked as long as a predecessor is open; matches show a subtle marker, and the fields blocked, blocking, id.set and id.duplicate filter by it. Automatically assigned IDs are unique within the search scope, manual duplicates are flagged. markers 🆔 and ⛔; task dialog → Predecessors/Successors
Urgency score An urgency score from due date (dominant), priority, scheduled bonus and start penalty sorts task lists without manual work (the default sort of the task query). The value can be shown via SHOW urgency and filtered and sorted via the urgency field; the calculation is on a daily basis without any influence from the time. urgency field and SHOW urgency in the task query
Reminder marker The reminder marker ⏰ on a task line sets a notification time at which the app reminds you of the task; it is distinct from the due date 📅, which names the actual deadline. Without a time part, the anchor fires at the configured default time. Syntax ⏰ YYYY-MM-DD [HH:MM]; default Ctrl+Alt+R; autocomplete, task dialog
Reminder notifications While the app is running with an open area, a dialog announces due reminders with description and file link: marking done advances the task along the status chain (recurrence included), Remind me later postpones the notification time (fixed options or a free date), dismissing mutes it until the next restart. On startup, missed reminders appear together in a catch-up dialog; nothing is lost. An optional system notification appears additionally when the window is not in the foreground. automatically while the app is running with an open area
Reminder list A sidebar list gathers all reminders of the area, grouped into Overdue, Today, Tomorrow and Later. Each entry can be completed or postponed directly, and a click opens the source file at the line. The Overdue group also carries muted reminders and offers to trigger them again. View → Sidebar → Panels → Reminders; alarm icon in the status bar
Event management Embedded event management as a code block: appointments, birthdays, anniversaries and project dates as data rows with category badges, the time difference in four tiers, milestones and yearly recurrence. The table is maintained directly in the rendered view and offers sorting, filters with saveable presets, and the views table, dashboard, month/week calendar, timeline and Gantt chart. Details and examples on the manual page «Events». Code block perspective-events; command palette → ‘Insert event block’
Event aggregation Collects events from the files of the area into an event block: the base set is all files whose assignment field names the internal profile «Ereignis»; a query in the clause language of the Perspective query refines the selection. Edits write back into the frontmatter of the source files, a row click opens the source; creating and deleting remain with the source files. Directive query: in the code block perspective-events
Event links Chains events as predecessors and successors: within the event block via automatically assigned identifiers, in the aggregation via file references in the list fields. Both sides are maintained together; the indicator opens a popup with search, predecessor/successor toggles and a jump to the target. Deleting cleans up the references, duplicating carries none over. Link indicator in the date column; 🔗 action of the row
Calendar systems Freely definable time reckonings per area: blocks with parallel calendars built from levels with five relation types (fixed factor, length table, leap rule, independent cycle, grouping), seamless epochs counting from 1 and conversion via the block axis. Values are stored canonically in the document, appear in all views as a badge with name display and open the prefilled picker on click. Details on the manual page «Calendar systems». Settings → Calendar systems (within an area); syntax @{calendar name: value}; command palette → ‘Insert calendar date’
Derived time reckonings A time reckoning that counts from a zero point of your own: it names a reference time reckoning and a date within it and inherits its units phase-shifted, so it needs no definition of its own. Values appear as a graded span in a selectable depth, counting away from the zero point in both directions and omitting parts of length zero; the tooltip names the corresponding point of the reference time reckoning. Details on the manual page «Calendar systems». Settings → Calendar systems → «Add derived time reckoning» (inside an area); syntax @{Name: count}
Code copy button Copy button at the top right of every fenced code block in the render pane (including code inside embedded Markdown). Click copies the content to the clipboard with a brief ‘Copied’ confirmation. button at the top right of a code block
Editor context menu Right-clicking in the editor opens a context menu with link, format, paragraph and insert actions plus the clipboard commands. Format and paragraph actions toggle on the selection or the cursor line; a check mark shows the active paragraph state. In a read-only editor only the clipboard part remains. Right-click in the editor (source and live mode); bold and italic also via default Ctrl+B / Ctrl+I
Custom context menu entries Custom command entries appear as a section at the end of the editor context menu, in source and live mode, with an icon and an optional display name. Entries whose command cannot run in the current context are disabled instead of hidden. File → Settings… → Command placement → Editor context menu
Format toolbar Bar above the editor with buttons for character formats, heading selection, lists, quote, links, and table; pressed buttons reflect the state at the cursor position, clicking again removes the format. The assignment is configurable; buttons that do not fit the width move into a more menu. Appears only in edit mode. Two buttons cover tables: the simple table with its grid picker and the skeleton of a Perspective table. Automatically above the editor in edit mode (Source, Split and Live view); assignment under File → Settings… → Format toolbar
Link insertion into the selection When text is selected and the clipboard holds a single address, pasting creates a Markdown link from the selection and the address instead of replacing the selection. Addresses containing spaces or brackets are wrapped in angle brackets, www addresses receive the https prefix. Without a selection and inside source code areas normal pasting applies. Ctrl+V with text selected; switch in Settings → Behavior. Ctrl+Shift+V always pastes unchanged.

View

Feature Description Access
View modes Views per tab: Source, Split, Rendered and Live, plus the mind map and the canvas as switchable extensions; the canvas can only be chosen for a document that holds a canvas surface. The chosen mode applies per tab; the default view for new tabs is set on the settings page (‘Behavior’ section). status-bar buttons; View menu (default Ctrl+1 to Ctrl+4)
Live mode Live mode renders Markdown directly in the editor: bold, italic, links, tables, code, images, KaTeX, and Mermaid appear as in the render pane. The cursor in a line reveals the raw source there for editing. Tables are exempt from this: they stay laid out and are edited cell by cell. status-bar button; View → Live (default Ctrl+4)
Mind map view Shows a document’s headings and lists as a mind map. Body text appears as a note on the node. Branches can be collapsed, the canvas zoomed and panned; clicking a node jumps to that place in the document. View → Mind map (default Ctrl+5)
Mind map appearance Controls how the mind map looks: root position in five directions (left, centre, right, top, bottom), curved or straight line style, the level from which a subtree inherits the colour of its main branch, the initially expanded depth and the maximum node width. The setting is the default for all documents; a single document overrides it for itself. File → Settings… → Mind map; per document in the YAML header under the key mindmap
Canvas view Shows a document’s canvas: cards with their own text are placed freely on the surface and joined by lines — directed, directed at both ends or without an arrow head, optionally in one of eight colours and with a label. Card text is rendered Markdown; if it does not fit, the card scrolls, and it never grows by itself. Cards are created by double-clicking the surface, through its context menu or through a command; connections are drawn from the connection handles of a selected card. Position, size, text, direction, colour and connection sides can be changed, and every action is exactly one undo step; in plain display mode the surface is view-only. It is the only view mode that depends on the document: without a surface, button and menu entry stay visibly disabled. If a document holds several surfaces, one tab per surface above the surface leads to each of them. Outside the canvas view the surface appears as a block with kind, size and a preview of the card texts. The surface can be panned, zoomed and fitted to its contents; details on the manual page ‘Canvas surface’. View → Canvas (default Ctrl+6); code block perspective-canvas; command palette → ‘Canvas’ and ‘Add card to canvas’
Canvas shapes Besides cards, a canvas surface carries geometric shapes of six kinds: rectangle, rounded rectangle, ellipse, triangle, diamond and star. Outline colour and fill colour come from the eight colours of the colour scheme, the fill may also be left out, and a shape optionally carries a label of plain text. Kind, colours and label are changed on the selected element; moving, resizing and deleting work as they do for a card. There is no drawing tool for freehand strokes, and a line cannot be attached to a shape. View → Add shape to canvas; context menu of the surface → Insert shape; command palette → ‘Add shape to canvas’
Canvas groups A group rectangle ties a part of the surface together and optionally carries a label and one of the eight colours of the colour scheme. A member is whatever lies completely inside the rectangle; no list of members is kept beside it. Moving the group takes its members along and keeps their arrangement towards each other, resizing moves nothing, and deleting the group leaves its members in place. The inside stays operable: cards and shapes within it can still be picked up. View → Add group to canvas; context menu of the surface → Insert group; command palette → ‘Add group to canvas’
Canvas stacking order Cards, shapes and groups of a surface share one stacking order; where they overlap it decides which of them is on top, and no kind of element sits permanently above another. Four commands move the selected element within it: bring to front, bring forward, send backward and send to back. A new group appears at the very back, a new shape and a new card at the very front. Lines are not affected; they are drawn in a layer of their own below the elements. View → Canvas stacking order; context menu of the selected element; command palette → ‘Bring to front’, ‘Bring forward’, ‘Send backward’ and ‘Send to back’
Link cards on the canvas A card on the canvas can display the content of another document instead of its own text — the whole document, or the part below a heading or block anchor. The content stays where it lives: the card keeps no copy and cannot be edited there; if it does not fit, the card scrolls. The header shows the card’s own caption, or else the target including its anchor, and a double-click on the content opens the referenced document at the referenced place. Setting, changing and removing the target happens at the selected card; a card without a target is an ordinary text card again and keeps its text. View → Add link card to canvas; canvas context menu → Add link card to canvas; card context menu → Set link…, Open target, Remove link; toolbar of the selected card; command palette → ‘Add link card to canvas’
Image cards on the canvas A card on the canvas can display an image from the area instead of carrying its own text. The image stays a file of the area: the card keeps no copy but points to it — through a path next to the document or through the file name. It is fitted into the card and keeps its proportions; it is neither distorted nor cropped, and an image card does not scroll. The header shows the card’s own caption, or else the name of the image file, and a double-click on the image opens the file the way the application opens any attachment. Setting, changing and removing the image happens at the selected card; a card without an image is an ordinary text card again and keeps its text. View → Add image card to canvas; canvas context menu → Add image card to canvas; card context menu → Set image…, Open target, Remove image; toolbar of the selected card; command palette → ‘Add image card to canvas’
Source options Optional word-wrap and line numbers in the source view — togglable per tab. Wrapped list lines continue indented, so the structure stays visible. status bar: Wrap / Numbers
Sidebar arrangement The sidebar is freely arrangeable: each panel can sit on the left or right, the order is selectable, and several panels can share one position as a tab group. The arrangement applies to the whole app; panel visibility remains switchable per column. The default arrangement distributes the panels across both sides in thematic tab groups and can be restored at any time. drag a panel title or group tab; Settings → Sidebar section
Panel headings as icon The headings of the sidebar panels can be switched from text to the icon of the respective panel, in section heads as well as in the tabs of grouped panels. The name remains available as a tooltip and for screen readers. Settings → Sidebar → headings as icon instead of text
Panel heights When several panels are stacked on one sidebar side, the drag handle between two panels sets the height of the panel above it. Set heights are saved; a double-click on the handle restores the automatic height. The bottom panel of a side has no handle and always follows the height of its content. If the set heights together require more room than the side has, the column becomes vertically scrollable; every panel keeps at least its header. drag handle between two panels in the sidebar
Height model of panel blocks What the height of a panel block depends on can be chosen. With «Height per panel» each panel keeps its own height, so the height of a tab group changes as you page through it. With «Fixed height per group» a tab group keeps its height, and the panels below stay in place. The heights of both settings are remembered separately. Settings → Sidebar → height of panel blocks
Panel access order Menu and status bar carry the same panel toggles in identical order: every sidebar panel has a menu entry and a status-bar button. The shared order can be sorted freely in the settings and applies to both places at once. Settings → Panel order (affects View → Sidebar → Panels and the status bar)
Sidebar variants The current sidebar arrangement can be saved as a named variant together with panel visibility, any number of times — globally or per area (stored in the area file, visible only when the area is open). Applying replaces the current arrangement; renaming, overwriting and deleting manage the set. View → Sidebar → Sidebar arrangements; Settings → Sidebar, Variants section (global) or Settings → Sidebar variants (area)
Collapse sidebar columns The left and right sidebar columns can be collapsed and expanded as a whole, independently of the individual panels. Expanding restores exactly the previous panel visibility; in a split view each editor column collapses its columns on its own. The state is saved globally and still applies on the next start. Icon at the inner column edge in the topmost header (when collapsed: edge strip with hover icon); View → Sidebar → Collapse Left/Right Sidebar; command palette; shortcut assignment under File → Settings… → Keyboard shortcuts
Status bar command buttons Custom command buttons appear as their own segment in the status bar: per button one command from the central registry, an icon from the curated internal set and an optional display name. When space runs short, surplus buttons move into an overflow menu at the end of the segment. File → Settings… → Command placement → Status bar buttons
Status bar hide list Every default button of the status bar can be hidden individually; only the hint line always stays visible. Hidden functions stay reachable through menu, commands and keyboard shortcuts; a reset button brings all buttons back. File → Settings… → Command placement → Hide default buttons
Folding gutter Heading and list/block folding in the source view with hierarchy tracks on the left; togglable per document. status bar: Folding; View → Editor Display → Folding
Editor view per document The three editor-view toggles (folding, line numbers, word wrap) are stored per document in the frontmatter (fold-gutter, line-numbers, word-wrap) and travel with the file. Toggling writes the new value into the frontmatter and marks the file as modified; documents without their own setting follow the global default. status bar or View → Editor Display → Folding/Line Numbers/Word Wrap; default: File → Settings… → Appearance
Active line The line holding the cursor is subtly shaded in edit mode, in source as well as live view and including the line-number column. In pure reading view it stays unmarked, as no cursor is present there. The tint is semi-transparent and therefore sits on top of any color scheme; selection, search hits and linter marks remain visible above it. File → Settings… → Appearance
Zoom Zoom the content of each tab independently in 10 % steps. The status bar shows the current zoom factor when it differs from 100 %; click it to reset. Zoom is volatile and does not survive closing the window. default Ctrl + + / − / 0; Ctrl + mouse wheel
Content width Sets the used width of the rendered view as a percentage (20 to 100, default 80); narrower values stay centered. Applies to the rendered and the split view; the PDF export always uses the full print width. File → Settings… → Appearance
Font family and size The font family and size can be chosen separately for the editing area and the rendered view; sizes range from 8 to 32. The values apply to all documents and take effect immediately in every open window. File → Settings… → Appearance
Settings The settings page opens as its own tab; the section navigation is divided into four blocks: «General» (app-wide), «Current area» (only visible when an area is open), «Extensions (internal)» and «Extensions (external)». Changes act as a draft with live preview of the appearance values; Apply and OK save them and are highlighted only when there are unsaved changes, and without changes Apply is disabled. Cancel or closing the tab discards; values apply to all open windows. File → Settings… (default Ctrl+,)
Focus mode Focus mode hides the tab bar, status bar and sidebars for distraction-free writing. The menu bar remains reachable via Alt. Esc exits focus mode unless a dialog or menu takes precedence. View → Appearance → Focus Mode (default Ctrl+Shift+F)
Typewriter scroll Typewriter scroll keeps the cursor line vertically centred in the editor as soon as the cursor moves. Active only in edit mode. View → Editor Display → Typewriter Scroll
Word statistics Word statistics in the status bar show words, characters and reading time (200 wpm) for the active file. Editor selection switches the display to the selection. Click opens a detail dialog with paragraphs, sentences and headings per level. Frontmatter, code blocks and KaTeX math are excluded. status-bar display; click opens details
Clock A sidebar panel shows the current time as an analog clock, as a digital readout and with a date line. One size setting scales dial and text together in three steps; dial style, second hand, hour format and date format are configurable as well, and the calendar week can be shown in addition. A bar at the top switches between clock, alarm, timer and stopwatch; the choice applies per sidebar column and is remembered. status-bar icon (clock symbol); View → Sidebar → Panels → Clock; Settings → Clock
Alarms The alarm mode of the clock holds any number of alarms: time via a digit control, plus a name and a repeat pattern (once, daily or on selected weekdays). Each alarm can be armed separately. A due alarm shows a notice that can be confirmed or snoozed by a configurable duration; when the window is not in front, a system notification is added. Alarms only fire while the app is running. Clock panel → bell mode; snooze duration under Settings → Clock
Timer and stopwatch The timer mode holds any number of countdown timers with remaining time and a progress bar; three quick buttons start immediately, custom durations come from a control for hours, minutes and seconds. Start, pause and reset act per timer, and the remaining time is computed from timestamps, so it stays correct across a restart. An elapsed timer shows a notice and can be confirmed or started again. The stopwatch mode counts up, with hundredths, pause and lap times. Clock panel → hourglass or stopwatch mode
Month calendar The clock’s calendar mode shows a month as a grid with a weekday header, the current day highlighted and an optional calendar-week column. Months and years page forwards and backwards, and a year can also be set directly through a digit control; a button returns to the current month. The days are display only: the calendar is for looking things up and does not lead into journals or appointments. Clock panel → Calendar mode; calendar-week column under Settings → Clock
Syntax highlighting Code blocks with a language tag (e.g. ```javascript) get syntax highlighting in the render pane. The colour palette follows the system theme. code block with a language tag
KaTeX math Math is typeset with KaTeX: $…$ inline, $$…$$ as a block. Dollar amounts in running text stay untouched. syntax $…$ / $$…$$
Mermaid diagrams Code blocks with the mermaid language tag render as SVG diagrams in the render pane (flowchart, sequence, gantt, class and more). Diagrams follow the theme. code block mermaid
Scroll synchronisation Scroll synchronisation in the split view: scrolling in the source pane carries the rendered pane along (and vice versa). Togglable per tab. status-bar icon; View → Editor Display → Scroll synchronisation
Frontmatter display Shows the frontmatter in the rendered view as a subtle collapsed line with the field count. Hovering expands the plain YAML, clicking pins it; in live mode the block turns back into editable source when the cursor enters it. The display can be turned off; a second switch keeps the block permanently expanded, which also applies to the PDF export. Line at the top of the document; toggle under File → Settings… → Appearance
Heading numbering Automatically prefixes headings with hierarchical numbers (1, 1.1, 1.2) in all views, the outline and exports. The source text stays standard Markdown. Excluded headings are not counted. Setting ‘Number headings’ (with start level); document frontmatter numbered-headings: true; per heading the markers {-} (exclude) and {+} (include)
Feature Description Access
Tabs and columns Multiple files in tabs side-by-side; up to two columns — tabs can be moved between columns by drag-and-drop or right-click menu. tab bar; drag-and-drop; tab context menu
Position of new tabs A tab created from within another one opens immediately to its right: the wiki link in a document, a query hit, journal navigation, an event source, a diagram link, and the document history. If the originating tab is inside a group, the new tab joins that group at the same spot without breaking the block apart. All other openings (dialog, command palette, bookmarks, panels) still go to the end of the strip; an already open file is only activated, never reordered. automatic when opening from within a document
Tab groups Tabs can be combined into named, colored groups: members sit together behind a group header that collapses and expands the group. Name and color (fixed eight-color palette) are selectable; groups survive session restore. Files opened from within a grouped document join the same group. A collapsed group may hold the active tab: its content stays visible, the header is marked as active, and hovering it lists the group’s tabs for a direct switch. Each entry in that list also carries a button that closes the file; the list stays open while you do. Context menu of a tab or the group header; dragging tabs and headers in the tab bar
Multiple tab selection Several tabs can be selected at once: Ctrl and click adds and removes individual tabs, Shift and click selects the span from the active tab. The selection is highlighted and moves as a whole when one of its tabs is dragged; the group entries of the context menu then act on all selected tabs. Middle-click still closes exactly the clicked tab. The selection belongs to a single tab bar and ends with a click without a modifier key. Ctrl and click or Shift and click in the tab bar
Rounded tab corners Document tabs and tab group headers with either square or rounded top corners. When rounded, a narrow gap replaces the vertical separator so the tabs read as individual surfaces; the active-tab marker and the group color bars stay unchanged. File → Settings… → Appearance
Multiple windows Move tabs to a new or existing window; with multiple windows open, a submenu lists all other windows as targets. The window title shows the suffix “(Window N)” when an application has multiple windows, combined with the application when several applications are running, e.g. “(App 2, Window 3)”. Multiple windows can be placed on different monitors; with session restore enabled, all open windows are reopened on the next launch. tab context menu: Move to / Copy to
Multiple applications The program can be started multiple times: each additional start creates a separate application with its own windows and numbering. With several applications running, the window title shows the suffix “(App N)”; session restore reopens all applications with their windows. File → New application; starting the program file again
Areas An application can be bound to an area: a folder including its subfolders as the exclusive working space. Opening, the recent-files list and saving are then restricted to the area; links to targets outside are marked and not opened. The window title shows “(Area Name)”; closing the area closes all windows of the area application. File → Area → Open Area… / Close Area
Recent areas List of recently opened areas for quickly re-entering working contexts. An entry opens the area with the usual area rules (jump to the running area application, adoption by an empty application, or a new application). File → Area → Recent Areas
Start page of an area An area can designate one of its files as a start page; it opens by itself when the area is opened. If a session is to be restored, that takes precedence and the start page stays closed. If the designated file is missing, the area opens unchanged and points out the invalid designation. An area without a designation behaves as before. Right-click a file in the area panel → Set as start page of the area
Demo-Area Bundled sample collection in English: Markdown files with attachments demonstrate the most important features and serve as a sandbox for safe experimenting; an astronomy topic area shows a four-level subpage hierarchy. The contents are copied into an empty folder and opened as an area, and two named workspaces with several windows and grouped tabs are created alongside. Existing files are never overwritten. File → Area → Create Demo-Area…
Area panel Shows the active area as a folder structure in the sidebar: folder tree on top, below it the Markdown files of the selected folder (other file types do not appear). Clicking opens the file as a tab; all entries show the full path as a tooltip; external changes appear automatically. The “+” button creates a new Markdown file in the selected folder. status-bar icon (folder symbol); View → Sidebar → Panels → Area
Create folder and file in the area panel Right-clicking a folder in the area panel creates a subfolder or a Markdown file there. The name is asked for in place; the item is created in the folder you clicked, even if a different one is currently selected. A file name without an extension gets the Markdown extension added, and the new file is opened and passes through the folder rule for templates. A name already taken, a name the file system does not allow and an empty name are reported before anything is created; cancelling leaves nothing behind. Right-click a folder in the area panel
Rename and delete a file in the area panel Right-clicking a file in the area panel offers rename and delete. Renaming is the same path as through the menu, including the update of internal links and its preview, but here it applies to any file of the area and not only to the open one; a tab with unsaved changes is saved first. Deleting moves the file to the operating system trash and asks beforehand, naming the file; it is restored there and not in the application, and if no trash is available this is reported instead of deleting permanently as a substitute. An open tab is closed, unsaved changes go through the save prompt first, and cancelling that prompt also cancels the deletion. Links pointing to a deleted file remain unchanged and become broken links. Right-click a file in the area panel
Calendar panel Sidebar panel with a monthly view of the journals: weekday header starting on Monday, ISO calendar-week column, dots on days with an existing entry, today highlight and a today button. Clicking a day opens or creates the daily entry, clicking the week cell the weekly entry; a filter narrows down to a shelf or a single journal. Status bar icon (calendar symbol); View → Sidebar → Panels → Calendar
Area statistics Shows key figures of the open area in its own read-only tab: file, folder and storage counts, how many files use each property and tag, the companion files, plus task, link and alias counts and lists of the largest, most recently changed and most linked files as well as the files without an incoming link; that one list is complete rather than capped, and a defined start page stays out of it and out of the matching figure. What is counted are files, not individual occurrences. The figures carry a timestamp and are collected on request. They show the saved state; the page says so and names how many open documents carry unsaved changes. View → Area statistics; context menu of the area panel
My Extended Memory A central page across all added workspaces, areas, books and bookshelves, in its own, non-editable tab. Containers are put there by hand — from the suggestion of the most recently opened containers and of the workspaces, or through a folder dialog whose kind the application determines itself — and can be removed again just as well, whereby only the entry disappears and the container itself stays untouched; the page shows what has been added and does not scan any drives. Each entry carries key figures with their timestamp, collected anew on request; a container that cannot be reached stays visible with its last known figures, and an area that is not open carries partial figures without tags, tasks and files without an incoming link. A detail view per container kind unfolds the figures and, for an area, leads on into the full area statistics. The page also carries the access to exporting and importing your own setup. View → My Extended Memory; command palette
Table of contents Table-of-contents sidebar per column with a clickable heading tree, jump-on-click and folding sync. status-bar icon; View → Sidebar → Panels → Table of Contents (default Ctrl+Shift+I)
Backlinks Backlinks sidebar per column: shows incoming wiki and Markdown links to the active file from its folder and up to two sub-folder levels, with live updates on save. status-bar icon; View → Sidebar → Panels → Backlinks (default Ctrl+Shift+B)
Outgoing links The outgoing-links sidebar lists all wiki links, Markdown links and wiki embeds of the active file in document order with line, anchor and snippet. Click opens the target (with alias resolution). status-bar icon; View → Sidebar → Panels → Outgoing Links (default Ctrl+Shift+O)
Area graph Shows the link relations of all Markdown files in the area as an interactive graph in its own tab. Edges are directed (arrow from the linking to the linked document, double arrow for mutual links); the toolbar offers a direction filter, a node counter and re-arranging. The same data is available either as a network or as a reference tree from a chosen root — the tree shows every file exactly once on its shortest path to the root and expands stepwise. View → Area graph; context menu of the area panel
File graph Shows the link neighborhood of the active file as an interactive graph in a sidebar panel, with an adjustable depth from 1 to 5 and a direction filter. The panel follows the active file; clicking a node opens the neighboring file. status-bar icon; View → Sidebar → Panels → File graph
Aliases Frontmatter field aliases: makes a file linkable under multiple names via [[Alias]]. Backlinks find them through any alias and mark hits with ‘via alias’. frontmatter field aliases:
Wiki link anchors Wiki links with anchors: [[File#Heading]] jumps to the heading, [[File#^id]] to the block anchor. The linter flags broken anchor targets. syntax [[File#…]]
Wiki embeds ![[File]] embeds inline other files: images as <img>, Markdown files as a rendered block, PDFs as an interactive viewer. Heading and block anchors (![[File#Heading]], ![[File#^id]]) embed partial excerpts — for block anchors the full surrounding block (list item with sub-lists, fenced code, table row, blockquote) is embedded. The target is looked for in three steps, the same way for every file type: first the path relative to your own file, then the subpage spelling, finally the plain name across the whole area; nothing outside the area root is embedded. syntax ![[File]]
Area links Links areas to one another: a link names the other area, its folder and a prefix. In a reference the prefix precedes the target ([[@prefix:file]]) and thus opens a file of the linked area. Its templates can be made available as well. When an area is opened it checks its links and reports a folder that has moved; a disconnected drive leaves them untouched. Settings → Current area → Area links; in text the syntax [[@prefix:target]]
Subpages Pages can have subpages at any depth, independent of the folder structure. The file name carries the hierarchy with the separator ∕ (Unicode U+2215); in links you write the normal slash. Relative targets point to the own subpage or the parent page. Wiki link syntax Page/Subpage, /Name and
Subpage navigation Navigation in the subpage hierarchy: a breadcrumb above the document shows the parent chain of the active subpage with clickable levels; the Subpages sidebar section lists the direct subpages of the active file. Breadcrumb above the document; status-bar icon; View → Sidebar → Panels → Subpages
Tags Tag system: #project/x in body text and the tags: frontmatter field are recognized as tags. The tags sidebar per column lists all tags with counts and filters on click. Tags are clickable in Reading view and in Live mode. Hex colour codes, plain numbers, anchor targets and hashes inside a web address do not count as tags. #tag in body text; status-bar icon; View → Sidebar → Panels → Tags (default Ctrl+Shift+T)
Rename tag A tag can be renamed across all its occurrences in the area, in body text as well as in the tags: field. Sub-tags move along: #project becomes #work, and #project/alpha becomes #work/alpha. A preview shows every match with its line and lets you deselect individual ones; nothing is written before you confirm, and the previous state of every changed file goes into the version history. Right-click an entry in the tags sidebar → Rename tag…
Anchor links In-document anchor links like Text work in the render pane. syntax [text](#section)
Links Markdown links to other .md files open them in a new tab; http(s) and mailto links open in the system default; wiki-style links like Target are supported. Filenames with spaces go in angle brackets in the Markdown target ([Text](<My Note.md>)) or are encoded as %20, whereas wiki links carry the space directly. syntax [text](target) / [[Target]]
Bookmarks Bookmarks sidebar with tree structure: keeps files bookmarked permanently, nested folders via right-click menu (new folder, rename, move to folder, remove) or drag-and-drop. The status-bar star shows the bookmark state of the active file. In the empty app state the list stays accessible so bookmarked files can be opened directly. status-bar star; File → More File Functions → Bookmark active file (default Ctrl+D); View → Sidebar → Panels → Bookmarks (default Ctrl+Shift+L)
Area bookmarks A second bookmarks section that belongs to an area and is stored in its area file. Its targets are relative to the area root, so they keep working when the area folder is moved. The section only appears while an area is open; bookmarks convert to and from the general ones in both directions. Bookmarks panel, “Area bookmarks” section (only while an area is open); context menu “Add as area bookmark” on the area-panel file row and the file tab; convert via the context menu of a bookmark; Settings → Behavior (order toggle)

General

Feature Description Access
Theme Light and dark theme; the default follows the theme of the operating system. status-bar icon; View → Appearance → Light/Dark/System
Color schemes Colors of the interface and rendered content via named color slots. One scheme is active per mode (light, dark); your own schemes start as copies of the built-in templates. The eleven colors the editor uses to mark up Markdown text are adjustable as well. Settings → Color schemes
Languages Interface in German, English, French, Spanish, and Italian. language selector in the status bar
Menu bar Native menu bar with File, View, and Help menus. Alt activates keyboard control; mnemonics (e.g. Alt+F for File) jump directly to the menu. Alt activates keyboard control
Configurable shortcuts All keyboard shortcuts are freely configurable: capture a combination by pressing it, conflict detection with an overwrite option, reset per command or all at once. File → Settings… → Keyboard shortcuts
Macros Macros bundle command sequences with optional delay steps (zero to ten seconds) and run strictly in sequence; a step that fails or cannot run in the context aborts the sequence with a status bar notice, and macro-in-macro is possible with a limited call chain. Each macro is itself a regular command: placeable, findable in the command palette and assignable a keyboard shortcut. File → Settings… → Command placement → Macros
Extensions Many features are built-in extensions and can be disabled individually (rendering, linking, tools). Disabled syntax renders as plain text, related panels, menu entries and shortcuts disappear; data and settings are preserved. File → Settings… → Extensions
External extensions Self-built extension packages extend rendering and interface through a versioned interface (extension API). Newly detected packages start disabled; activation requires an explicit confirmation, and faulty packages are disabled automatically. File → Settings… → Extensions (external)
Creating extensions Develop your own external extensions: structure of the manifest, the versioned extension API with its extension points, and a complete reference example to build on. Manual page «Creating extensions»
Manual The manual opens as its own read-only tabs in the tab system: an overview page as a guide, generated feature and shortcut pages, topic pages with syntax examples — usable in all four views, in five languages. Help → Help (default F1)
Product Tour A guided tour walks through the core concepts of the application in ten stations, pointing at the relevant control in the running interface. It starts automatically on the first program launch and afterwards only on request; it can be cancelled at any time. Help → Product Tour