cache-bust local assets; narrow the language facet to scores >= 3

Part 1 — asset versioning: every local <script src> and <link rel=stylesheet> on the
tracked pages now carries ?v=<sha256-of-the-file> (10 hex), computed at BUILD time from
the file's bytes by work/build-asset-versions.py — never hand-typed, and idempotent
(re-running with no file change rewrites nothing). This is what makes an edited
focus-rule.js / photo-upload.js a new URL instead of a stale cache hit.

Part 2 — language facet: a language now counts for the Language filter only when its
0-5 self-assessment is >= LANG_FACET_MIN (3 = 'works in it'). The constant sits beside
the 15-point rule in the page script and its mirror in build-directory.py. Nothing
stored changes; the card's languages chart still prints every language above 0, the
search box is unchanged, and the facet stays an exact membership test against the
card's value. A '1' language no longer offers the person under that language.
This commit is contained in:
webmaster committed 2026-11-03 21:26:58 +00:00
1 parent c83186f809
commit bd0881f882
51 files changed
+138 -118

No files matched your search

+5 -5
View File
@@ -33,7 +33,7 @@
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
<link rel="stylesheet" href="/style.css" />
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
<style>
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
.bc-sr-only {
@@ -1018,9 +1018,9 @@
<div class="fcopy">Copyright &copy; ODOO4projects LLC</div>
</div>
</footer>
<script defer src="/static/buy.js"></script>
<script defer src="/static/bootcamp-availability.js"></script>
<script defer src="/static/bootcamp-waitlist.js"></script>
<script defer src="/static/lang.js"></script>
<script defer src="/static/buy.js?v=31314de600"></script>
<script defer src="/static/bootcamp-availability.js?v=94dfd8cd7c"></script>
<script defer src="/static/bootcamp-waitlist.js?v=6c2e2fbd33"></script>
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
</body>
</html>