External links in post bodies now open in a new tab and show a
box-with-arrow marker icon, so readers can tell at a glance which
links leave the site.
- blogex: new Blogex.ExternalLinks.rewrite/1 marks up anchors with
http(s) hrefs at compile time with target="_blank", rel="noopener"
and class="blogex-external" (idempotent, merges into existing
class/rel values, leaves relative, mailto: and #anchor links alone)
- blogex: Post.build/3 applies the rewrite, so every blog gets it
- app: CSS in .blogex-post-body draws the marker via a mask so it
inherits the link colour; empty ::after content stays invisible
to screen readers
- make test now also runs the blogex suite; it is currently red
with 3 pre-existing blog_integration_test failures caused by the
vacuous link validator (parked yak
link-validator-never-sees-compiled-html-...)
Replace the broadcast-style SVG icon with the traditional RSS
symbol (dot + two concentric arcs) — the standard feed icon
used across browsers and feed readers.
- Add <.rss_icon> inline SVG component in core_components.ex
- Inject RSS <link> tags into <head> on blog pages for auto-discovery
- Show RSS icon next to blog title on index and tag pages
- Show RSS icon on post pages next to back-link
- Add Subscribe section in footer with links to both feeds
- Wire feed URL through blog controller (index, show, tag actions)
174 tests pass, credo clean.
- Add missing 'do' keyword on describe block (SyntaxError)
- Replace brittle SVG rect DOM selector with direct render_click event
trigger to avoid AmbiguousError from multi-segment rects
- Fix layout test: render/1 returns LV inner HTML only, not the
layout wrapper — check for content actually present in output
- Use and instead of hardcoded zinc colors in EditorDashboardLive
- Apply same fix to MicroprintsLive description paragraph
- All titles now respect the active theme and remain readable in both light and dark modes
The seeds file was creating an unconfirmed user and then setting a password,
which conflicts with Phoenix's auth system (magic link login is not allowed
for unconfirmed users with passwords).
This fix ensures the demo user is confirmed before setting their password,
so they can log in via both magic link and password.
Demo credentials: demo@example.com / password123!
Fix the dashboard missing menu by explicitly setting layout: {FirehoseWeb.Layouts, :app} in the live_session.
This ensures the navigation menu is rendered on the authenticated editor dashboard LiveView.
- Add missing 'do' keyword on describe block (SyntaxError)
- Replace brittle SVG rect DOM selector with direct render_click event
trigger to avoid AmbiguousError from multi-segment rects
- Fix layout test: render/1 returns LV inner HTML only, not the
layout wrapper — check for content actually present in output
- Use and instead of hardcoded zinc colors in EditorDashboardLive
- Apply same fix to MicroprintsLive description paragraph
- All titles now respect the active theme and remain readable in both light and dark modes
The seeds file was creating an unconfirmed user and then setting a password,
which conflicts with Phoenix's auth system (magic link login is not allowed
for unconfirmed users with passwords).
This fix ensures the demo user is confirmed before setting their password,
so they can log in via both magic link and password.
Demo credentials: demo@example.com / password123!
Fix the dashboard missing menu by explicitly setting layout: {FirehoseWeb.Layouts, :app} in the live_session.
This ensures the navigation menu is rendered on the authenticated editor dashboard LiveView.
- Add conditional "Dashboard" link in navbar that shows when a user is logged in
- Tests verify the link is hidden for unauthenticated users and visible when authenticated
- Investigation reports for Q1 (drafts/scheduled), Q2 (RSS), Q3 (email subs)