Skip to content

Keyboard & markdown

Ezynota is keyboard-complete. All shortcuts are IME-safe (composition events and keyCode 229 are handled), so typing in CJK languages never triggers false conversions.

Keyboard shortcuts

ShortcutAction
EnterSplit block at caret
Shift+EnterSoft line break
Backspace (at block start)Merge with previous block
Delete (at block end)Merge with next block
Tab / Shift+TabTable cell navigation (creates rows/cols at the edges)
EscapeExit browser fullscreen; otherwise close menus
/Open slash menu
[[Note-link suggestions (workspace mode)

Modifier shortcuts

ShortcutAction
Ctrl/Cmd+BBold
Ctrl/Cmd+IItalic
Ctrl/Cmd+UUnderline
Ctrl/Cmd+KInsert/edit link
Ctrl/Cmd+DDuplicate block
Ctrl/Cmd+ZUndo
Ctrl/Cmd+Shift+ZRedo
Ctrl/Cmd+Shift+LToggle list
Ctrl/Cmd+Shift+CToggle code block
Alt+↑ / Alt+↓Move block up / down

Markdown typing shortcuts

Conversions trigger as you type and each is a single undoable transaction.

Block shortcuts (on Space)

TypeResult
#######Heading 1–6 (levels configurable, default 1–3)
>Quote
- or *Bulleted list
1. or 1)Ordered list
[] or [x]Task list item (unchecked / checked)

Inline shortcuts

TypeResult
**bold** or __bold__Bold
*italic*Italic
~~strike~~Strikethrough
`code`Inline code
==mark==Highlighted text

On Enter

TypeResult
---, ***, ___Delimiter block
```Code block

Markdown interchange

Typing shortcuts are just one direction of Markdown support. Ezynota converts documents to and from Markdown losslessly:

ts
import { blocksToMarkdown, markdownToBlocks } from "ezynota";

const md = blocksToMarkdown(doc.blocks);
const blocks = markdownToBlocks(md);

See Interchange for the full story (HTML, plain text, print).

Clipboard

Copy/cut emit text/plain, text/html, and application/x-ezynota+json (a sanitized document fragment). Pasting follows this priority:

  1. Ezynota JSON (copying between Ezynota editors is lossless)
  2. Files (routed to image tools — paste screenshots directly)
  3. Sanitized HTML (converted to blocks, scripts/styles stripped)
  4. Plain text

Dragging text or files onto the editor uses the same pipeline.

Released under the MIT License. Zero runtime dependencies.