Commit Graph

11 Commits

Author SHA1 Message Date
kennethreitz 99cd934394 Sidebar is a dictionary; modes are submodes of the current word
Tab renamed Dictionary, Definition is the default submode, and every
navigation (Go, double-click, chip click, card buttons) routes through
the same word + submode state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 02:17:30 -04:00
kennethreitz da82cd6ee2 Multi-anchor rhyme keys + Dictionary mode in the sidebar
KET-a-mine can now rhyme from its first primary stress, not just its
dictionary-final one, so it joins meth-am-PHET-a-mine's family; multi
buckets claim biggest-first since tokens carry several anchor keys.
The lookup panel grew a fourth mode: Dictionary.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 02:14:24 -04:00
kennethreitz 03fc5d16d0 Remove the current-stanza legend from the side panel
The scheme readout in the toolbar covers it; the panel is for lookups.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 02:11:51 -04:00
kennethreitz 69b8ab4e93 WordNet synonyms + double-click opens definitions
- mode=syn now served locally by NLTK WordNet (already a g2p-en dep),
  sense-grouped by part of speech and frequency-ranked; Datamuse gone
- Double-clicking a word in the draft opens its definition card; the
  card grew a Rhymes button for the old jump
- NLTK wordnet data baked into the Docker image and CI

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 02:09:00 -04:00
kennethreitz b0c4af345a UX round: definition cards, meter toggle, annotation lines
- Clicking a lookup result now opens a dictionary definition card
  (dictionaryapi.dev) with insertion as an explicit button
- Meter-break warnings live behind a "meter check" toolbar toggle
  (persisted, off by default)
- Lines starting with #, ( or [ are annotations: never highlighted,
  no scheme letter, and they don't split stanzas
- Removed stanza reordering

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:56:43 -04:00
kennethreitz f60818ef02 Fix highlight class collision with the lookup mode row
The prototype's .seg (display:flex segment control) clobbered the new
highlight segments, turning every rhyme span into a full-width bar.
Highlight segments are .hseg now.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:46:08 -04:00
kennethreitz c60b9d6d43 Overlapping rhyme layers: phrases as a second visual channel
Phrases now compete in the perfect-rhyme pass anchored at their first
word's stressed vowel ("stir up" = ER AH P = "syrup"), render as
underlines while words render as fills, and can overlap in different
colors — the syrup/cup knot finally displays both schemes. Stopword-
anchored phrases attach only on exact rime identity. Segment-based
highlight renderer replaces the span-per-token one.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:41:49 -04:00
kennethreitz 7eaf815e5b Meter coaching: flag lines that break the stanza's pattern
When >=60% of a stanza's lines share a syllable count (+-1), outliers
get a wavy underline and the readout names the target count.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:33:27 -04:00
kennethreitz a58dbf6706 Multiple drafts with tabbed switching
Browser-tab-style chips above the editor; docs live in localStorage
with auto-titles from the first line, deletion backup, and migration
of the single-draft era.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:32:27 -04:00
kennethreitz 7a1e0e2953 Add per-line meter detection
CMU stress markers -> stress string per line, scored against the
classical feet (iamb, trochee, anapest, dactyl, amphibrach) with
flexible monosyllables. Syllable count + best-fit meter shown in the
toolbar readout for the caret line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:12:34 -04:00
kennethreitz 84bae60dff RhymePad: phonetic rhyme scratchpad for poets & rappers
FastAPI backend with CMU-dict rhyme detection (perfect, internal,
multisyllabic slant, consonance, multi-word phrases), g2p fallback for
unknown words, rhyme/synonym lookup, draggable stanza reordering,
localStorage drafts, and synthesized beats. 19 regression tests drawn
from real verses (Wayne, Em, Kanye).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:10:39 -04:00