Willem van den Ende 855b6cb590 Add RSS subscribe links with icon across blog pages, footer, and head
- 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.
2026-07-08 17:00:11 +01:00

69 lines
2.1 KiB
Plaintext

<header class="navbar px-4 sm:px-6 lg:px-8 border-b border-base-200">
<div class="flex-1">
<a
href="/"
class="font-display text-xl font-semibold tracking-tight text-primary hover:opacity-80 transition"
>
Willem's firehose
</a>
</div>
<div class="flex-none">
<ul class="flex flex-row px-1 space-x-2 sm:space-x-4 items-center">
<li>
<a href="/blog/engineering" class="btn btn-ghost btn-sm">Blog</a>
</li>
<li>
<a href="/blog/releases" class="btn btn-ghost btn-sm">Releases</a>
</li>
<li>
<a href="https://qwan.eu" class="btn btn-ghost btn-sm" target="_blank" rel="noopener">
QWAN
</a>
</li>
<li>
<a href="/contact" class="btn btn-ghost btn-sm">Contact</a>
</li>
<li :if={@current_scope && @current_scope.user}>
<a href="/editor/dashboard" class="btn btn-ghost btn-sm">Dashboard</a>
</li>
<li>
<.theme_toggle />
</li>
</ul>
</div>
</header>
<main class="px-4 py-12 sm:px-6 lg:px-8">
<div class="mx-auto max-w-2xl space-y-4">
{@inner_content}
</div>
</main>
<footer class="border-t border-base-200 px-4 py-8 sm:px-6 lg:px-8">
<div class="mx-auto max-w-2xl space-y-3">
<h3 class="text-sm font-semibold tracking-wide text-base-content/60 uppercase">Subscribe</h3>
<div class="flex flex-wrap gap-4">
<a
href="/api/blog/engineering/feed.xml"
class="inline-flex items-center gap-2 text-sm text-base-content/70 hover:text-primary transition-colors"
target="_blank"
rel="noopener noreferrer"
>
<.rss_icon class="size-4 text-orange-500" />
Engineering Blog
</a>
<a
href="/api/blog/releases/feed.xml"
class="inline-flex items-center gap-2 text-sm text-base-content/70 hover:text-primary transition-colors"
target="_blank"
rel="noopener noreferrer"
>
<.rss_icon class="size-4 text-orange-500" />
Release Notes
</a>
</div>
</div>
</footer>
<.flash_group flash={@flash} />