Skip to content

Feat/typoraphy callout - #223

Closed
ilias-mi wants to merge 28 commits into
erictli:mainfrom
ilias-mi:feat/typoraphy-callout
Closed

ilias-mi wants to merge 28 commits into
erictli:mainfrom
ilias-mi:feat/typoraphy-callout

Conversation

@ilias-mi

@ilias-mi ilias-mi commented Nov 4, 2026

Copy link
Copy Markdown

No description provided.

ilias-mi and others added 28 commits October 15, 2026 13:27
Pinned notes stay at the top of each folder; root-level notes keep
their newest-first ordering.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
While the sidebar is hidden, moving the pointer within 48px of the left
edge slides it in as an overlay. It hides once the pointer moves more
than 32px past its right edge, after a short delay. Focus mode and the
title bar area are excluded.

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

The hover reveal now triggers only near the left edge of the editor
content area, not over the format bar or title bar. A revealed sidebar
docks and animates exactly like the toggle button instead of floating
as an overlay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Shows each heading as a line (longer for higher-ranked levels) and its
level number, with the focused heading highlighted and glowing. Two
views, selectable in Settings > Appearance:
- Focused: vertically centered, the focused heading and 3 neighbors
- Full Outline: top-aligned, all headings, auto-scrolled

The focused heading follows the cursor after clicks or typing and the
scroll position after wheel scrolling. The indicator fades out before
it would overlap the text and never captures pointer events.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A quick flick out of the window through the left-edge trigger zone no
longer reveals the sidebar. The pointer must stay in the zone for 150ms;
leaving the window or the app cancels the pending reveal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat: sort notes within folders alphabetically
fix: require a short dwell before revealing the sidebar
…gy use

Callouts and highlights
- Callout block with 11 types (note, info, tip, important, definition,
  example, question, summary, exam, warning, caution), stored as
  GitHub-style "> [!TYPE]" blockquotes
- Highlight mark in yellow, green, blue, pink and gray; yellow is stored
  as ==text==, other colours as <mark data-color="...">
- Toolbar menus, slash commands, Cmd+Shift+H, light/dark colour tokens

Live reload of external edits
- Reload the open note automatically when it changes on disk and has no
  unsaved edits
- Coalesce file events with a trailing 500ms debounce in the frontend
  instead of dropping events in the watcher, so the final write is never lost

Performance and energy
- Buffer search index edits and commit only before a search, instead of
  committing to disk on every autosave and watcher event
- Use a manual reader reload policy, removing tantivy's 500ms meta.json
  polling thread, and a single indexing thread
- Reuse note titles and previews in list_notes while mtime and size are
  unchanged, so refreshing after a save no longer reads every note
- Subscribe the format bar to its active states with useEditorState, so
  typing no longer re-renders the whole editor

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- README: list the new fork features, update external-change behavior,
  add the highlight shortcut
- CLAUDE.md: note the lazy search-index commits and frontend-coalesced
  file events; correct the auto-save debounce values

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Render inline $...$ math with Pandoc-style delimiter rules, so prices
  like "$5 and $10" stay plain text; click to edit like block math
- Add a gray "Plain" callout without a title, saved as > [!PLAIN]
- Make editor dropdowns non-modal, so opening and closing them no longer
  locks scrolling and hides the rest of the app from the accessibility tree

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Typing "$" outside code opens the math popup; Space on the empty field
  cancels and leaves a literal "$"
- Render the formula live at the cursor while typing, as a decoration that
  leaves the document and undo history untouched; editing existing inline
  math previews in place
- Add an Inline Math toolbar button next to Block Math
- Share the popup anchoring between the math popups

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Notes, tabs and windows
- A note's filename is its title and no longer follows its first line;
  rename from the sidebar menu or the filename bar above the note
- Tabs per window and "Open in New Window"; renames carry over to other
  windows via the note-renamed event
- Remember each note's scroll position and cursor for 12 hours

Performance with large notes (measured in WKWebView)
- Avoid whole-note restyles: replace space-y-* and group-* variants with
  stack-y-* and in-group-* (App.css), turn off tiptap's injected CSS and
  its .ProseMirror-hideselection * rules, drop the typography plugin's
  :first-child/:last-child rules (vite.config.ts) in favour of
  margin-trim, and stop toggling inherited properties on the sidebar
- Sidebar animation: hold the editor at its final width, fix the sidebar
  content width and memoize the sidebar (first frame ~190ms -> ~30ms)
- Reuse parsed documents when switching back to a recent note, and wait
  for pending saves before reading it

Editor
- Anchor the inline math popup to its live preview instead of the
  hidden formula, which put it at the top of the window
- Clicking display math no longer selects it, so the native selection
  doesn't flash across the text above
- Remove heading and list buttons from the toolbar (shortcuts remain);
  toolbar tooltips show after a 2s hover

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

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Show the headings enclosing the current position at the top of the editor
(h1 / h2 / ...), shortening outer headings first. Clicking it expands an
animated tree of all headings to jump to. The filename bar now reads
"filename: <name>" without the folder. The right-edge heading indicator and
its setting are removed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Show the headings enclosing the current position at the top of the
editor (h1 / h2 / ...), shortening outer headings first so the innermost
stays whole. Clicking it opens an animated tree of all headings to jump
to. The filename bar now reads "filename: <name>" without the folder and
slides over the breadcrumb. The right-edge heading indicator and its
setting are removed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Typing "->" now becomes →, "--" becomes an en dash (–), and a third
  "-" turns that into an em dash (—). "--" only converts after other
  text, so "---" on an empty line still makes a horizontal rule.
- The callout bar is now a background stripe instead of border-left.
  WebKit was spreading a one-sided border's color into the rounded
  corners on the other side. Print styles put border-left back, since
  print mode strips backgrounds.
@ilias-mi ilias-mi closed this Nov 4, 2026
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Explain Change →

Caution

Review failed

The pull request is closed.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

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