Files
esh-pfi-infrastructure/stacks/news-digest/templates/archive.html.j2
T
vh 018122648f news-digest: cache-bust style.css + app.js with generated_at timestamp
Browsers were serving stale frontend assets after rebuilds, which hid
the new world/local headline desks: the OLD app.js's refreshCounts()
only counted .item children (not .headline), so the new headline desks
came up with visibleItems=0 and got the .is-empty class which is
display:none. Hard refresh fixed it but only for the user who knew
to do that.

Append ?v=<generated_at strftime> to both link/script tags in
digest.html.j2 and archive.html.j2 so every digest run produces a new
asset URL. Works with the existing entrypoint.sh static-asset sync —
no other infra needed.
2026-04-28 11:20:43 -07:00

85 lines
2.9 KiB
Django/Jinja
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Daily Digest · Archive</title>
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
<link rel="stylesheet" href="style.css?v={{ generated_at.strftime('%Y%m%d%H%M%S') }}" />
</head>
<body>
<header class="masthead" role="banner">
<div class="masthead-inner">
<a class="masthead-brand" href="index.html" title="Latest edition">
<span class="brand-glyph" aria-hidden="true">◢</span>
<span class="brand-mark">DAILY DIGEST</span>
</a>
<div class="masthead-edition">
<span class="edition-stamp">ARCHIVE</span>
<a class="archive-link" href="index.html">← LATEST</a>
</div>
<div class="masthead-meta">
<div class="meta-row">
<span class="meta-label">EDITIONS ON FILE</span>
<span class="meta-value">{{ total }}</span>
</div>
<div class="meta-row">
<span class="meta-label">CADENCE</span>
<span class="meta-value">2× DAILY · 0800 / 2000</span>
</div>
<div class="meta-row">
<span class="meta-label">RETENTION</span>
<span class="meta-value">UNLIMITED</span>
</div>
</div>
</div>
<div class="aurora-rule" aria-hidden="true"></div>
</header>
<main class="brief">
<section class="desk">
<header class="desk-head">
<span class="desk-num">∞</span>
<h2 class="desk-title">All Editions</h2>
<span class="desk-sub">newest first</span>
</header>
{% if editions %}
<ol class="archive-list">
{% for e in editions %}
<li class="archive-item">
<a class="archive-row" href="{{ e.filename }}">
<span class="archive-date">{{ e.date_long }}</span>
<span class="archive-edition archive-edition-{{ e.edition_short|lower }}">
{{ e.edition_short }}
</span>
<span class="archive-arrow">→</span>
</a>
</li>
{% endfor %}
</ol>
{% else %}
<p class="empty-msg">No editions on file yet. Cron fires twice daily at 0800 / 2000.</p>
{% endif %}
</section>
</main>
<footer class="colophon">
<div class="colophon-inner">
<div class="colophon-block">
<span class="meta-label">INDEXED</span>
<span class="meta-value">{{ generated_at.isoformat(timespec="seconds") }}</span>
</div>
<div class="colophon-block">
<span class="meta-label">STORE</span>
<span class="meta-value">/opt/docker/data/news-digest</span>
</div>
<div class="colophon-block">
<span class="meta-label">FORMAT</span>
<span class="meta-value">edition-YYYY-MM-DD-{am,pm}.html</span>
</div>
</div>
</footer>
</body>
</html>