Tables#
FoldNotes supports GFM (GitHub Flavored Markdown) tables with live rendering and a visual table editor.
Table Syntax#
Tables use pipes (|) and hyphens (-):
| Name | Role | Status |
|---------|------------|---------|
| Alice | Designer | Active |
| Bob | Developer | Active |
| Charlie | PM | On leave|
The second row is the separator row — it must contain at least three hyphens per column. You can use colons for per-column alignment:
:---left-aligned (default):---:centre-aligned---:right-aligned---unspecified (defaults to left)
The table editor writes these markers for you, and the table stays readable in any other markdown editor that supports GFM.
Creating a Table#
- Command palette — type
/then Table (or press ⌘⌥T) - Table menu — Insert Table (also in the macOS Format menu)
Table Editor (macOS)#
Double-click any table in the editor, or pick Edit Table… from the Table menu (⌘⇧T), to open the visual table editor sheet.
How the Grid Works#
The grid behaves like Numbers / Excel:
| Action | Result |
|---|---|
| Single-click a cell | Selects the cell; does not enter edit mode |
| Double-click / Return / Enter / F2 | Enters edit mode with the cursor at the end of the cell |
| Any printable character on a selected cell | Clears the cell and types the character (type-to-replace) |
| Backspace / Delete on a selected cell | Clears the cell content (with undo) |
| Tab / Shift+Tab | Moves selection to the next / previous cell — no auto-edit |
| Arrow keys | Move selection (or move within text while editing) |
| Down / Right past the last row or column | Extends the table by an empty row / column |
| ⌘Z | Undoes any cell or structural change |
There is no row-highlight bar — selection is per-cell, drawn as a highlighted rectangle in the theme's accent colour.
Row-Number Gutter#
A narrow strip on the left of the grid shows the row numbers. It stays put while you scroll horizontally and updates as you add, remove, or reorder rows.
Column Headers#
Right-click a header to:
- Insert / Delete / Copy / Paste Column
- Align Column Left / Center / Right — the choice is reflected immediately in the sheet (cell text aligns; header text aligns) and saved into the markdown when you click Done. A checkmark next to the current alignment shows the column's state.
- Rename Column… — opens an inline editor with the cursor at the end of the existing name. Press Enter to confirm.
The header text uses the theme's secondary label colour so the row reads as a label strip rather than a busy form input.
Table Top-Level Menu (macOS)#
A Table menu in the menu bar surfaces table operations regardless of whether the editor is the active surface:
| Item | Shortcut | Notes |
|---|---|---|
| Edit Table… | ⌘⇧T | Greyed out unless the cursor is in a table |
| Align Column Left / Center / Right | ⌃⌥L / ⌃⌥C / ⌃⌥R | Active while the table sheet is open |
| Insert Row Below / Column to the Right | ||
| Delete Row / Delete Column |
These shortcuts work both inside the sheet and from the main editor when the cursor sits in a table.
Image Browser Integration#
While the table editor is open, the right-click menu in the Image Browser (⌘⇧A) reads "Insert into Cell" instead of "Insert into Note". Picking an image inserts  into the currently-selected cell (with undo). The image's reference count updates immediately.
Selection, Copy & Paste#
Cells can be selected as a rectangular range and moved around like a spreadsheet:
| Action | Result |
|---|---|
| Drag across cells | Selects a rectangular range — tinted with the theme accent |
| Shift + click on a cell | Extends the existing range to that cell |
| Shift + drag from a column header | Extends the range upward to include the header band |
| ⌘C on a range | Copies the cells to the clipboard as TSV (tab-separated rows, one row per line) |
| ⌥⌘C on a range | Copies the range with column headers prepended as the first line |
| ⌘X on a range | Copies (as TSV) then clears the cells |
| Backspace / Delete on a range | Clears every cell in the range (body only — the header is never cleared) |
The TSV format is what Excel, Numbers, and Google Sheets read and write — paste a copied range straight into any spreadsheet app, or vice versa.
CSV / TSV Paste#
When you paste multi-line content into a cell, the table editor detects whether the paste is structured (contains tabs or newlines) and spreads it across cells instead of dumping it into a single cell:
- Tab-separated rows split into columns by tabs.
- No tabs but newlines present — splits by commas (CSV).
- Single-line text with commas stays in one cell, because comma-separated prose is a perfectly valid paste target.
If the paste is multiple rows, multiple columns, and lands in the top-left of an empty / placeholder table, the editor offers a prompt:
Use first row as column headers? [ Use as Headers · Use as Data · Cancel ]
Choose "Use as Headers" and the first pasted row becomes the column titles; the remaining rows become data. "Use as Data" keeps every row as a data row. "Cancel" aborts the paste entirely.
Column Operations from the Header Menu#
Right-click any column header to copy, cut, or paste a column:
- Copy Column writes the column's cells to the clipboard, one per line.
- Cut Column copies and then deletes (single undo covers both).
- Paste into Column takes line-by-line text from the clipboard and fills the column top-down, extending rows if needed.
What Gets Saved#
When you click Done, the table editor rewrites the markdown:
- Columns are space-padded so the source aligns visually in plain-text viewers. The padding follows each column's alignment — right-aligned columns are padded on the left, centred columns split the padding evenly.
- Separator row carries the colon markers for any column whose alignment differs from the default.
- Empty trailing rows and columns are removed so an oversized grid doesn't leak into the file.
If you cancel, no changes are written.
Rendering in the Main Editor#
Tables in the editor are styled so they stand apart from regular text:
- Header row bold so the column titles read first.
- Separator row muted so it doesn't compete with the data.
- Data rows in the normal editor font.
- Pipe characters dimmed for readability.
- A subtle background highlight groups the table visually.
- Per-column alignment is visible directly because columns are space-padded — right-aligned columns sit to the right of their cells.
Inline formatting (bold, italic, links, tags, backlinks) works inside table cells.
Preview#
The Preview window renders tables with full styling — borders, striped rows, header formatting, and per-column alignment (header and body honour :---: / ---: / :---).
Tips#
- Use the table editor for bulk entry. Tab between cells without ever opening the keyboard menu; column widths auto-fit; trailing empty rows are removed when you click Done.
- Right-align numeric columns. Right-click the column header, choose Align Right — both the header and every data row line up against the right edge.
- Drag images directly into a cell by opening the image browser alongside the table editor. The image markdown lands in the active cell.
- Tables don't allow line breaks inside cells. Use
<br>if you need a soft line break in the rendered output.
Table Editor (iOS)#
Tap any table in the editor and choose Edit Table… to open the visual table editor sheet. The iOS editor is designed for touch first, with the keyboard shortcuts available when a hardware keyboard is attached to an iPad.
Touch Interactions#
| Action | Result |
|---|---|
| Tap a cell | Cell becomes active and editable immediately — the keyboard slides up with the cursor in the cell |
| Tap below the last data row | Extends the table by one row; the new cell becomes editable at the column you tapped |
| Down arrow at the last row (hardware keyboard) | Extends by one row, focuses the new cell |
| Right arrow at the rightmost column (hardware keyboard) | Extends by one column, focuses the new cell |
| Left arrow at the start of a cell (hardware keyboard) | Jumps to the previous cell |
| Right arrow at the end of a cell (hardware keyboard) | Jumps to the next cell |
| Tab / Shift+Tab (hardware keyboard) | Wraps to the next / previous cell — extends a new row at the bottom-right corner if needed |
| ⌘Z / ⇧⌘Z (hardware keyboard) | Undo / redo for cell, row, column, and alignment changes |
There is no select-then-edit mode on iOS — that pattern fights with touch and the standard text-selection magnifier. Every tap activates a cell directly.
Bottom Toolbar#
The toolbar sits at the bottom of the sheet. When the on-screen keyboard appears, the toolbar rides up above it so it's always reachable; with no keyboard up, it pins to the bottom edge.
- Undo / Redo on the left.
- Left / Right chevrons for moving between cells along the row.
- ⋯ menu in the centre — opens the cell action menu (see below).
- Up / Down chevrons for moving between cells along the column.
Cell Action Menu (⋯)#
Tapping the ⋯ button (or long-pressing inside a cell and choosing Insert Image…) opens a menu that operates on the currently active cell:
- Insert Image… — opens the attachment browser on top of the table sheet. Picking a file inserts
into the active cell with undo. (Body cells only — image markdown isn't valid in a header row.) - Add Row Above / Add Row Below — body rows only.
- Add Column Left / Add Column Right — always available.
- Alignment — Left / Center / Right; the chosen option is reflected live in the cell and saved into the markdown when you tap Done.
- Delete Row / Delete Column — grouped at the bottom of the menu, available only when removing wouldn't leave the table empty.
The menu is compact and pops up from the bottom toolbar, with the Delete entries placed closest to the button for fast access.
In-Cell Edit Menu#
Long-press inside a cell to reach the standard iOS edit menu. FoldNotes filters this menu to keep it focused on table-relevant actions:
- Cut / Copy / Paste / Select / Select All / Look Up / Translate / Share — all standard text actions, kept.
- Insert Image… — appended for body cells, same action as the ⋯ menu entry.
- Writing Tools and AutoFill — hidden; neither makes sense for a short table cell.
Right-click (two-finger tap on a trackpad) inside a cell produces the same filtered menu.
Header Style#
Column headers use the theme's secondary label colour so the row reads as a label strip rather than a busy form input — consistent with the macOS sheet's appearance. The header text alignment matches each column's alignment so right-aligned columns get right-aligned headers.
What Gets Saved#
Same as the macOS version: pipe-table markdown with space-padded columns, colon markers for non-default alignments, and fully-empty rows removed on save. Tap Done in the navigation bar to commit, or swipe down to dismiss — both save the edit. Tap Cancel to discard changes.
Platform Notes#
The visual table editor is available on both macOS and iOS, with platform-appropriate interactions. macOS has spreadsheet-style click behaviour, a row-number gutter, and multi-cell range copy / paste. iOS has tap-to-edit cells, tap-below-the-last-row to extend, and a toolbar at the bottom designed for touch. A table edited on one device looks the same on the other.