Replace double-quoted string with escaped quotes in element selector
with a ~s sigil to satisfy Credo's 'More than 3 quotes found inside
string literal' readability check.
Includes formatting changes from mix format (ran via make check).
Remove hardcoded module names (FirehoseWeb.MicroprintsLive,
Firehose.Application) from the expand-switch test. Now verifies:
- Each file's source renders when expanded (generic defmodule check)
- Source content differs between files (catches stale content bug)
- Button states update correctly (collapse/expand)
The source_viewer component used static DOM IDs (id='source-viewer')
with phx-update='ignore'. When switching expanded files, LiveView
reused the same DOM element but phx-update='ignore' prevented content
from being updated, showing the previous file's source.
- Override source_viewer/1 in MicroprintsLive with unique per-file IDs
generated via :erlang.phash2(file_path)
- Add test verifying expand-switch shows correct source content
- Add test for highlight/expand coupling (collapse when highlighting
a different file)
- All 160 tests pass
- Add test in microprints_live_test.exs that documents the uncoupled state bug
- Fix handle_event("highlight_line") to collapse expanded_path when
highlighting a line in a different file
- All 159 tests pass
- Install highlight.js via npm with 8 language definitions
- SourceViewer hook applies syntax highlighting on mount/update
- Atom One Dark theme for dark mode, Atom One Light for light mode
- Add hooks directory, package.json, and package-lock.json
- Add demo document and screenshots
- Add rodney-docker.md documentation
- Ignore .rodney/ chrome data directory
And particular for this project. I am now reading more markdown, making
smaller steps. So the installation instructions went to the README.
Hmm. having just written about init scripts, the installation may be
best moved to an init script in the skill directory.