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#
Hover a header and a ⋯ button appears at its right edge; click it — or right-click anywhere on the header — for that column's menu:
- Sort Ascending / Sort Descending
- 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.
Click a header itself to select the column, or double-click to rename it. Clicking a header never sorts — sorting is a deliberate choice from the ⋯ menu, so reaching for a header to name it can't reorder your table underneath you.
The sorted column shows a small arrow marking the direction. It sits inboard of the ⋯ button, which always stays at the right edge so it's in the same place on every column.
Sorting#
Sort from any column's ⋯ menu. The sort is undoable (⌘Z), and completely blank rows are dropped before sorting so they don't cluster at one end.
Date columns sort by date, not by text. FoldNotes recognises dates as people actually write them:
| You write | Read as |
|---|---|
31-07-2028, 23/06/1955, 23.06.1955 |
day, month, year |
2026-03-29 |
year, month, day (four-digit year leads) |
29-03-26 |
29 March 2026 — a number over 12 can only be a day |
03/04/26 |
genuinely ambiguous, so your region's convention decides |
Two-digit years follow the spreadsheet convention: under 30 is this century, so 26 is 2026 and 55 is 1955.
A column counts as dates when most of its filled cells parse as dates, so one TBC among real dates doesn't spoil it. Cells that aren't dates sort after the dates, keeping their text order.
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.
Menu-bar commands act on the selected cell — the one highlighted in the grid — so a command works the same whether you got there by clicking, by arrow keys, or from the menu bar. Right-clicking a cell selects it first.
Images in Cells#
Select a cell, open the Image Browser (⌘⇧A) and choose an image — its right-click menu reads "Insert into Cell" while the table editor is open. The reference  lands in the selected cell, with undo.
A picture in a cell doesn't draw in the grid, and it doesn't draw in the main editor's table either — a table row is one paragraph, and a picture drawn beneath one would land between rows and break the table apart. What it does do is render in the Preview and travel through every export, which is what makes a table of pictures worth building.
To see what a reference points at without leaving the sheet, hover it — the picture appears in a card.
Size a picture in a cell by putting the size on the end of the filename:
#300 caps the width at 300 points; #300x200 caps both. Use this form rather than the | 300 one described in Images — a table cell can't contain a |, because that's the column delimiter.
Without a size, a picture in a table is capped so it can't stretch the column out of shape.
Formatting Inside a Cell#
The editor's own formatting shortcuts work on the selected text inside a cell, with the same keys and the same markdown:
| Shortcut | Result |
|---|---|
| ⌘B | **bold** |
| ⌘I | *italic* |
| ⇧⌘H | ==highlight== |
| ⌥⌘S | ~~strikethrough~~ |
| ⇧⌘E | `inline code` |
They toggle: apply one to text that already carries it and the delimiters come off again. With nothing selected, you get an empty pair with the cursor between them.
Linking to Other Notes#
Type [[ in a cell and the note picker appears, exactly as it does in the main editor — filter as you type, arrow keys to move, Return to insert, Escape to dismiss. If nothing matches, Return accepts what you typed as the title of a note you haven't written yet.
This is what makes a table usable as a home page: a column of [[wiki links]] is a set of live links to other notes, and they resolve and render like any other link in your collection.
Hover a link in a cell and its note's preview card appears, the same card the main editor shows.
Find & Replace#
⌘F opens the find bar — or click the magnifying glass in the grid's top-left corner. It shows a match counter, ‹ › to step between matches (⌘G / ⇧⌘G work too), and a replace field for the current match or all of them. Replacing all is a single undo step.
Filling Cells#
| Shortcut | Result |
|---|---|
| ⌘D | Fill down — the top row of a selected range fills the rows beneath; a single cell copies from the cell above |
| ⌘R | Fill right — the leading column fills the cells to its right; a single cell copies from the cell to its left |
Double-click a column's right-hand resize divider to fit the column to its content.
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 monospace code font so columns line up — this is the same font as code blocks, set via Settings → Editor → Code 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.
Long-press a cell to see what it refers to: a picture appears as a preview with Quick Look alongside it, and a [[link]] shows the linked note's card. This is the touch counterpart of hovering on a Mac — and it matters more here than anywhere, because a picture in a cell never draws in the grid.
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.