Block Editor

Ink's editor is block-based. Everything on a page — text, images, code, embeds — is a block. You move blocks by dragging, insert them with slash commands, and format with markdown-style shortcuts.

Inserting blocks

Slash commands. Type / anywhere to open the block picker. Start typing to filter:

  • /h1, /h2, /h3 — headings
  • /bul, /num, /check — lists
  • /quote, /callout, /divider — formatting
  • /code — fenced code with language picker
  • /table — table
  • /image, /file, /video, /embed — media
  • /toggle — collapsible section
  • /math — KaTeX inline or block

Hit Enter on the block you want.

Markdown shortcuts. Type these at the start of a line:

ShortcutProduces
# + spaceH1
## + spaceH2
### + spaceH3
- + spaceBullet list
1. + spaceNumbered list
[] + spaceCheckbox list
> + spaceQuote
\``` + languageCode block

Block types

Text

Paragraph, heading, quote, bullet, numbered list, checkbox list. All support bold, italic, strikethrough, inline code, and hyperlinks.

Callouts

Five styles: info, tip, warning, danger, quote. Each has an icon and colored background. Useful for notes and important warnings.

Toggles

Collapsible sections. Great for FAQ-style content and long docs where you want a summary view.

Code

Fenced code blocks with language selection. Syntax highlighting via Shiki. Supports diff mode and line-range highlighting for when you want to draw attention to specific lines.

```diff
- old line
+ new line
```

Tables

Standard tables with cell merging, column alignment, and header/footer rows. Each cell supports rich text (bold, links, code).

Images and files

Drag-and-drop, paste from clipboard, or /image. Uploaded to the Supabase Storage bucket configured in your env. Files support inline preview for PDFs.

Embeds

YouTube, Loom, Figma, Google Docs, GitHub gists, CodePen — paste a URL and Ink figures it out. For anything without a built-in handler, /embed with an iframe src works.

Math

Inline ($x^2 + y^2$) and block math via KaTeX. Great for technical docs.

Linked pages

@page-name creates a bidirectional link. The target page's Backlinks panel lists every page pointing to it.

Special blocks

  • Task block — syncs with Comms Tasks View if Comms is in the same Supabase project.
  • Pulse digest block — embeds a live standup digest from a Pulse team.
  • Track record embed — renders a linked Track contact, company, or deal inline.

Drag-and-drop

Every block has a handle (⋮⋮) in the left margin. Drag to reorder, indent (for lists and nested toggles), or drop into another page in the sidebar.

Keyboard shortcuts

ShortcutAction
Cmd+B, Cmd+I, Cmd+UBold, italic, underline.
Cmd+Shift+7, Cmd+Shift+8Numbered, bulleted list.
Cmd+EnterToggle checkbox done.
Tab / Shift+TabIndent / outdent in lists.
Cmd+KGlobal search + jump.
Cmd+/Open slash menu.
Cmd+Z, Cmd+Shift+ZUndo, redo.
Alt+dragDuplicate a block.

Collaboration

  • Live cursors — see where co-editors' cursors are.
  • Presence — avatars at the top show who's on the page right now.
  • Comment — select any block, Cmd+Shift+M to comment.
  • @-mention@username notifies the mentioned user.

See Conversations & Threads for more on comments.

Version history

Every save creates a version row. Cmd+Option+H opens the version picker — scroll through time, preview any version, and restore (non-destructive: restoring creates a new top version).

Exporting

From the page menu:

  • Export → Markdown — plain .md with frontmatter.
  • Export → HTML — standalone .html with inline styles.
  • Export → PDF — via the browser's print flow.
  • Copy as markdown — selection-level or full page.

Performance notes

Pages load incrementally (block by block). Very long pages (>1000 blocks) stay smooth. Collaborative editing uses CRDT-like merging — concurrent edits merge without conflicts in most cases.