Editor and Markdown reference
The Folio editor edits Markdown with a live preview. This page lists what the editor and the page renderer understand. Pages are rendered from typed nodes: HTML and scripts in the text are never executed, and links are limited to relative paths, http(s) and mailto.
Toolbar, shortcuts and slash commands
Section titled “Toolbar, shortcuts and slash commands”The formatting toolbar and keyboard shortcuts cover everyday formatting. Typing / opens slash commands:
| Command | Inserts |
|---|---|
| Heading, table, code, task | The matching Markdown |
| Callout | A callout block |
| Page link | A [[Page]] link |
| Work item link | A work item key |
| Status | A status label |
| Date | A date (today, highlighted) |
| Image or file | An upload |
Blocks
Section titled “Blocks”| Block | Notes |
|---|---|
| Callouts | Four kinds: info, warning, success and error |
| Code | Fenced code with a language |
| Tables | Pipe tables |
| Check-lists | - [ ] items. They can be ticked in view mode. |
| Collapsible sections | :::details |
| Table of contents | [TOC] |
| Quote panels | > [!NOTE] |
| Mentions | Mention a person |
Status labels and dates
Section titled “Status labels and dates”{status:In progress}{status:Blocked|purple}{date:2026-11-05}{status:text}takes its colour from the words, in the same way as aStatusproperty;{status:text|colour}sets it. Colours are grey, blue, green, yellow, red and purple.{date:YYYY-MM-DD}renders as a date such as “5 Nov 2026” in every locale, and in public links. A date that does not exist stays plain text.- A date in an unticked check-list item turns red when it is in the past and yellow today.
| Syntax | Result |
|---|---|
[[Page title]] |
A link to a page, with backlinks. If the page does not exist, the link stays pending and resolves when the page is created, renamed or restored. A link to a page you cannot see carries neither title nor id. |
A work item key such as PROJ-12 |
A live link with the item’s status and title, read with the reader’s permissions. Folio stores only the key. |
| Embedded work list | A list of work items by filter (project, status, type, assignee, label, sprint), refreshed on open and showing only items the reader may see. |
Special code blocks
Section titled “Special code blocks”These fenced code blocks, named by their language tag, are rendered as live content. Each respects the reader’s own permissions in the other product.
| Block | Parameters |
|---|---|
forge-file |
repository, path, ref, lines. Shows a file or a line range. Markdown files are shown as a document (nesting up to two levels). |
pulse-chart |
service, metric (p50, p95, p99, requests, errors, error rate), period (1h to 30d), optional resource and env. Draws the service metric from Pulse APM for the space’s project. |
properties |
The first block of a page: Key: value lines, up to 30. Properties are versioned with the page. |
properties-report |
label, scope (children, space or project), columns, sort. A table of pages with their properties as columns, up to 200 pages, only those the reader can see. A report over a space or project needs a label. |
A forge-file block pins a commit by default and says when the file changed on the main branch (“Show latest”). A reader without access to the repository sees “You cannot see this repository in Forge.” A pulse-chart shows “You cannot see this project in Pulse.” without access.
In public links, the forge-file and pulse-chart blocks are replaced by a short sentence without the path or service name, and properties reports show a sentence instead of data.
Pasting
Section titled “Pasting”Pasting HTML from Word, Google Docs or a web page converts it to clean Markdown:
- Kept: headings, bold, italic, strikethrough, inline code and code blocks with a language, links (
http(s),mailtoand relative only),http(s)images, nested lists and check-lists, quotes, rules, and tables with a header row. - Dropped: styles, scripts, comments and meta.
javascript:links and anchors stay as text, anddata:images are not kept.
Ctrl+Z undoes a paste in one step. Ctrl+Shift+V (Cmd+Shift+V on a Mac) pastes plain text. Files copied to the clipboard are uploaded only when the clipboard holds no text.
Images and files
Section titled “Images and files”Use the Image or file command, paste a screenshot, or drag files into the editor. An image is inserted on its own line; a file as a link. The page has an Attachments section with preview, size, author, a “Not used in the page” mark, and add and delete.
| Limit | Value |
|---|---|
| Size | 25 MB per file |
| Count | 100 files per page |
| Space | A quota per space |
| Types | PNG, JPEG, GIF, WebP, PDF, text, Markdown, CSV, JSON, YAML, ZIP, Word, Excel and PowerPoint. SVG and HTML are refused. The type must match the file’s first bytes, and text must be UTF-8. |
Anyone who can edit the page can upload and delete; anyone who can see the page can read its files, so a view restriction hides the files too. Files are served with their uploaded type, nosniff and a sandboxing CSP; only images and PDFs open inline.
Presence and conflicts
Section titled “Presence and conflicts”Avatars in the page header show who has the page open and who is editing (editing is highlighted: “Anna is editing”). Before you start editing, Folio checks for other editors or drafts and warns you with Edit anyway and Cancel. There is never a silent overwrite: if two people publish from the same base, the second sees a conflict showing both versions.