Skip to content

Markdown styling setting, lists that carry on, and Cmd+C that just works - #32

Merged
aakashns merged 3 commits into
mainfrom
markdown-styling-lists
Oct 19, 2026
Merged

aakashns merged 3 commits into
mainfrom
markdown-styling-lists

Conversation

@aakashns

@aakashns aakashns commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Four changes you asked for, plus closing #31 in favour of the three-way styling setting.

What changed

Markdown styling setting. Settings → Markdown styling: full (default, same as before), minimal (the markdown symbols are faded, italics and green code stay; no bold), or off (plain text). Shown as full | minimal | off. Links still open with Ctrl+click in every mode, and History uses the same styling.

Settings explain themselves. Each setting now has a faded line under it saying what the current value does (it changes when the value does), with a line between settings. A bar on the left marks the selected setting (no highlighted block). Settings with a few options show them all (on | off, full | minimal | off), with the current one highlighted: ←/→ or a click picks one, and Enter goes to the next.

full minimal off
full minimal off

Settings

Lists carry on. Enter in a list item starts the next one with the same bullet, the next number, or an empty [ ] task box. Quotes (> ) carry on too.

  • Enter on an empty item ends the list. If the item is nested, it comes out one level instead.
  • Shift+Enter (Option+Enter, or Shift+Enter with your Alacritty config) always gives a plain new line.
  • With the cursor at the start of an item (up to the end of its bullet, number or task box), Tab nests it under the item above, lined up with that item's text, and Shift+Tab brings it back out. Anywhere else, Tab still types two spaces.
  • A numbered item you nest restarts at 1, because markdown doesn't count a nested 3. as a list. Brought back out, it continues the numbering above it.

Typing lists

Cmd+C just works. Why nano is different: nano leaves the mouse to the terminal, so the terminal does the selecting, and its Cmd+C copies that. writui handles the mouse itself (that's what makes everything clickable), so the terminal has no selection to copy, and it never passes Cmd+C on. Now anything you select in writui goes on the clipboard right away, so Cmd+C has nothing left to do. To protect what you'd copied before:

  • typing, deleting or pasting over a selection puts your earlier clipboard back
  • Cmd+V over a selection pastes what you'd copied before, not the selection itself
  • moving away from a selection (a click, an arrow key, Esc) leaves it on the clipboard, as if you'd pressed Cmd+C

Cmd+V already worked: it's the terminal's paste, which writui reads. It only seemed broken because Cmd+C hadn't copied anything. The README's terminal config for passing Cmd+C on to writui is gone, since nothing needs setting up now.

One trade-off: "select, Cmd+C, then type over the selection" leaves the clipboard as it was before you selected. Cmd+X is the way to cut. Also, if the clipboard held an image, selecting text replaces it.

Evidence

  • cargo test: 160 pass, including new tests for list continuation, nesting and renumbering, the styling levels, the Settings layout and clicks, and the clipboard rules (tests use a fake clipboard).
  • cargo clippy --all-targets and cargo fmt --check: clean.
  • Checked in the real app in tmux against a throwaway vault, using the real macOS clipboard (saved first, restored afterwards):
    clipboard set to "a link"
    double-click "milk"          → clipboard: milk
    Cmd+V (bracketed paste)       → line reads "- a link"; clipboard: a link
    select a word, arrow away     → the word stays on the clipboard
    
  • The site demo (site/demo.tape) typed - before every bullet, which would now give - - …. I updated it to type the first bullet only and re-recorded it.

Try it

gh pr checkout 32 && cargo run

(Debug builds use .dev-data/, password writui-dev.) Try a list with Enter, Tab and Shift+Tab. Press s for Settings and switch Markdown styling. Then double-click a word in a post and press Cmd+C in Alacritty, and paste somewhere else.

Version: 0.19.0.

🤖 Generated with Claude Code

aakashns and others added 2 commits October 19, 2026 15:24
- Settings has a new "Markdown styling" setting: full (as before),
  minimal (the markdown symbols faded, the text plain: no bold or
  italics), or off (plain text). Enter or a click switches between them.
- Every setting now says, under it in faded text, what its current value
  does, and lines separate the settings.
- Enter in a list item starts the next one: the same bullet, the next
  number, an empty task box. Enter on an empty item ends the list. Quotes
  carry on too. Shift+Enter is a plain new line.
- Tab at the start of a list item nests it under the item above; Shift+Tab
  brings it back out.
- On a Mac, Cmd+C copies in any terminal with no setup: selected text goes
  on the clipboard as soon as it's selected. Typing or pasting over a
  selection leaves what you'd copied before on the clipboard, and Cmd+V
  over a selection pastes that.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Minimal now fades the markdown symbols and keeps code green; everything
else stays plain (no bold, italics or underlines).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aakashns

Copy link
Copy Markdown
Owner Author

Minimal now keeps code green. Only the faded symbols and green code remain; everything else is plain. The Settings line now reads "Plain text, but code is green and markdown symbols faded." I updated the README, spec and decisions to match. Tests, clippy and fmt pass.

minimal
Settings

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅

View logs ↗
No Preview URL. Enable ↗ f8f7d00 2026-10-19T08:33:39.667Z Visit the dashboard ↗
  • Build: Success ✅

View logs ↗
No Preview URL. Enable ↗ 1a7e6c4 2026-10-19T08:27:20.866Z Visit the dashboard ↗

- The selected setting is marked by a bar on its left, instead of a
  highlighted block.
- Settings with a few options show them all, like "on | off" or
  "full | minimal | off", with the current one highlighted. Pick one with
  ←/→ or a click; Enter goes to the next.
- The minimal markdown styling keeps italics, as well as green code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aakashns

Copy link
Copy Markdown
Owner Author

Updated:

  • Settings: a bar on the left marks the selected setting, with no highlighted block. Settings with options show them all (on | off, full | minimal | off), with the current one highlighted. ←/→ or a click picks one, and Enter goes to the next.
  • Minimal styling keeps italics as well as green code (no bold).

161 tests pass; clippy and fmt are clean. Checked in the real app: → picks the next option, and a click on "on" switches Nerd Font.

Settings
minimal

@aakashns
aakashns merged commit 5554405 into main Oct 19, 2026
3 checks passed
@aakashns
aakashns deleted the markdown-styling-lists branch October 19, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant