fix: mobiloverløb, stak-tekster og mermaid væk
Tabeller ruller nu inden i sig selv, så siden ikke bliver bredere end skærmen ved 390 px. Kodeblokke og tabeller kan igen nås med tastatur. Kolofon, uses, humans.txt og banner beskriver den nye stak. Mermaid er fjernet, da intet indlæg bruger det. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
3844221421
commit
6d5a903247
@@ -2,6 +2,7 @@
|
||||
"""Efterbehandling af Zolas output i public/:
|
||||
|
||||
- overskrift-id'er som på den gamle side (bevarer æøå, så gamle #ankre stadig virker)
|
||||
- kodeblokke og tabeller ruller inden i sig selv og kan nås med tastatur
|
||||
- sitemap-index.xml + sitemap-0.xml med lastmod fra git og frontmatter
|
||||
- sw.js med precache-liste
|
||||
- PW_PREVIEW=1: hele sitet flyttes ind under /udkast, uden sitemap og service worker
|
||||
@@ -31,7 +32,7 @@ def slug(text):
|
||||
return s.replace(" ", "-").removesuffix("-")
|
||||
|
||||
|
||||
def heading_ids():
|
||||
def prose():
|
||||
for f in pages():
|
||||
src = f.read_text()
|
||||
if 'class="prose' not in src:
|
||||
@@ -44,8 +45,10 @@ def heading_ids():
|
||||
seen[s] = n + 1
|
||||
return f'<h{m[1]} id="{s}-{n}"{m[2]}>' if n else f'<h{m[1]} id="{s}"{m[2]}>'
|
||||
|
||||
f.write_text(re.sub(r'<h([1-6]) id="[^"]*"([^>]*)>(.*?)(?=</h\1>)',
|
||||
lambda m: fix(m) + m[3], src, flags=re.S))
|
||||
src = re.sub(r'<h([1-6]) id="[^"]*"([^>]*)>(.*?)(?=</h\1>)', lambda m: fix(m) + m[3], src, flags=re.S)
|
||||
src = src.replace('<pre class="giallo"', '<pre tabindex="0" class="giallo"')
|
||||
src = src.replace("<table>", '<div class="tabel" tabindex="0"><table>').replace("</table>", "</table></div>")
|
||||
f.write_text(src)
|
||||
|
||||
|
||||
def git_date(*files):
|
||||
@@ -120,7 +123,7 @@ def service_worker():
|
||||
"""Precache-listen afhænger af buildet, resten af sw.js ligger i scripts/sw.js."""
|
||||
exts = {".html", ".css", ".js", ".svg", ".png", ".woff2", ".xml", ".txt", ".webmanifest"}
|
||||
files = sorted(p for p in OUT.rglob("*") if p.is_file() and p.suffix in exts
|
||||
and p.name not in ("sw.js", "mermaid.min.js"))
|
||||
and p.name != "sw.js")
|
||||
h = hashlib.sha256()
|
||||
for p in files:
|
||||
h.update(p.read_bytes())
|
||||
@@ -145,7 +148,7 @@ def rebase():
|
||||
|
||||
def main():
|
||||
(OUT / "sitemap.xml").unlink(missing_ok=True)
|
||||
heading_ids()
|
||||
prose()
|
||||
if PREVIEW:
|
||||
rebase()
|
||||
else:
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ self.addEventListener('install', (e) => {
|
||||
e.waitUntil(caches.open(CACHE).then((c) => c.addAll(URLS)).then(() => self.skipWaiting()));
|
||||
});
|
||||
|
||||
// Rydder forrige version, også de gamle workbox-caches.
|
||||
// Rydder forrige version og caches fra tidligere service workers.
|
||||
self.addEventListener('activate', (e) => {
|
||||
e.waitUntil(caches.keys()
|
||||
.then((keys) => Promise.all(keys.filter((k) => k !== CACHE).map((k) => caches.delete(k))))
|
||||
|
||||
Reference in New Issue
Block a user