### Syntax-Hervorhebung (Code-Listings)
-Astro verwendet standardmäßig **Shiki** für die Syntax-Hervorhebung in Markdown-Dateien (Blog-Posts). Das Theme ist explizit in `astro.config.mjs` konfiguriert (`github-dark`). Shiki rendert die Hervorhebung als **Inline-Styles** direkt ins HTML — es wird keine separate CSS-Datei und kein clientseitiges JavaScript benötigt.
+**Shiki** rendert Syntax-Hervorhebung als **Inline-Styles** direkt ins HTML — keine separate CSS-Datei, kein clientseitiges JavaScript. Das Theme (`one-dark-pro`) ist in `astro.config.mjs` konfiguriert.
-Das erzeugte HTML-Muster sieht so aus:
-```html
-<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sql">
- <code>…</code>
-</pre>
-```
+**Blog-Posts (Markdown):** Astro verarbeitet Fenced Code Blocks automatisch durch Shiki. Erzeugt `<pre class="astro-code one-dark-pro">`.
-**Container-Styling** (`pre.astro-code`) wird in `src/styles/base/typo.scss` (Screen) und `src/styles/print.scss` (Druck) definiert:
-- Screen: Padding und Border-Radius (klassisches Layout-Scope)
-- Druck: Überschreibt Shikis Inline-Hintergrundfarbe auf transparent (via `!important`), damit kein dunkler Hintergrund gedruckt wird
+**Projektseiten (Maven-generiert):** `ProjectPage.astro` verarbeitet den HTML-Body zur Build-Zeit manuell durch Shiki:
+- Blöcke mit Sprachhinweis (`<pre><code class="language-*">`, aus Markdown-Quellen): direkt an Shiki übergeben.
+- Blöcke ohne Sprachhinweis (`<pre>`, aus APT-Quellen): `highlight.js` (`highlightAuto`, Schwellenwert ≥ 8) erkennt die Sprache; bei zu geringer Konfidenz fällt der Block auf `text` zurück.
+- Erzeugt `<pre class="shiki one-dark-pro">`.
-**Geltungsbereich:** Nur Blog-Posts (Markdown). Die Maven-generierten Projektseiten (`src/content/projects/`) haben einfache `<pre>`-Blöcke ohne Syntax-Hervorhebung — das ist Maven-seitig gesteuert und außerhalb des Astro-Workflows.
+**Container-Styling** (`pre.astro-code, pre.shiki`) wird in `src/styles/base/typo.scss` (Screen) und `src/styles/print.scss` (Druck) definiert:
+- Screen: Padding, Border-Radius, CSS-Counter-basierte Zeilennummern (via `.line::before`)
+- Druck: Überschreibt Shikis Inline-Hintergrundfarbe auf transparent (via `!important`)
**Nicht verwenden:** Das früher verwendete `prettify.js` (Google Code Prettify) wurde entfernt — es wurde nie tatsächlich geladen und ist kein Bestandteil mehr dieses Setups.
-{"version":3,"sourceRoot":"","sources":["../../src/styles/variables.scss","../../src/styles/base/fonts.scss","../../src/styles/screen.scss","../../src/styles/base/browserreset.scss","../../src/styles/base/util.scss","../../src/styles/base/typo.scss","../../src/styles/base/head.scss","../../src/styles/base/navigation.scss","../../src/styles/base/content.scss","../../src/styles/base/marginal.scss","../../src/styles/base/footer.scss","../../src/styles/base/formulare.scss","../../src/styles/base/taxonomy.scss","../../src/styles/base/404.scss","../../src/styles/screen/head.scss","../../src/styles/screen/menu.scss","../../src/styles/screen/footer-sticky.scss","../../src/styles/screen/wip.scss","../../src/styles/screen/packs.scss","../../src/styles/screen/layout.scss","../../src/styles/screen/footer.scss","../../src/styles/tablet/layout.scss","../../src/styles/tablet/typo.scss","../../src/styles/tablet/menu.scss","../../src/styles/tablet/marginal.scss","../../src/styles/tablet/footer.scss","../../src/styles/screen/faux-column.scss","../../src/styles/screen/marginal.scss","../../src/styles/screen/content.scss","../../src/styles/screen/onecolumn.scss","../../src/styles/tablet/head.scss","../../src/styles/tablet/404.scss","../../src/styles/phone/typo.scss","../../src/styles/phone/layout.scss","../../src/styles/phone/head.scss","../../src/styles/phone/menu.scss","../../src/styles/phone/footer.scss","../../src/styles/phone/packs.scss","../../src/styles/phone/404.scss","../../src/styles/tiny/layout.scss","../../src/styles/tiny/404.scss"],"names":[],"mappings":";AAAA;AAmBA;AAWA;AC9BA;EAEI;EACA;EACA;EAIA;EACA;;AAGJ;EAEI;EACA;EACA;EAIA;EACA;;AAGJ;EAEI;EACA;EACA;EAIA;EACA;;AAGJ;EAEI;EACA;EACA;EAIA;EACA;;AAGJ;EAEI;EACA;EACA;EAIA;EACA;;AAIJ;EAEI;EACA;EACA;EAIA;EACA;;AAIJ;EAEI;EACA;EACA;EAIA;EACA;;AAIJ;EAEI;EACA;EACA;EAIA;EACA;;AAIJ;EAEI;EACA;EACA;EAIA;EACA;;AC1GJ;ACHA;AAGA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASC;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;AAAA;EAEC;EACA;;AD/BD;ACkCA;;AACA;EACC;;ADpCD;ACuCA;;AACA;EACC;;AAED;EACC;;AD5CD;AC+CA;;AACA;EACC;EACA;;ADlDD;ACsDA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AD9DF;AEHA;AAGA;;AAEA;AAAA;EAEE;EACA;;AAEF;EACE;;AFRF;AEWA;;AACA;EACE;EACA;;AFdF;AEkBA;;AAEA;EAEE;;AAGF;EAEE;;AF3BF;AGHA;;AAEA;EL+BE;EK5BA;EACA;EACA;EACA,kBLKY;;AKHd;EL2BE;EACA;EKzBA,OLFY;EKGZ;EACA;;AAEF;EAEE;EACA,OLlBY;EKmBZ;;AAEF;EAEE;;AAEF;EAEE;;AAEF;AAEE;;AAEF;EAEE,OLnCY;EKoCZ;;AAEF;AAAA;AAAA;AAAA;EAKE,OLzCY;EK0CZ;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE,OLtDY;EKuDZ;;AAEF;EAEE;;AAEF;EAEE;EACA;;AAEF;EAEE;;AAEF;EAEE;EACA;;AAEF;EAEE;;AAEF;EAEE;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EAEE;;AAEF;EAEE;EACA;;AAEF;EAEE;;AAEF;EAEE,kBLpGY;EKqGZ;EACA;;AAEF;EAEE;EACA;;AAEA;EAEE;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EAEE;EACA;EACA,kBLxIY;EKyIZ;EACA;;AAEF;EAEE,OL5IY;EK6IZ;;AAEF;EAEE,OLhJY;EKiJZ;;AAEF;AAAA;EAGE,OLvJY;EKwJZ;;AAEF;EAEE;;AAGF;AAAA;AAAA;EAIE,OL5JY;;AK8Jd;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE,OL9KY;EK+KZ;;AAIF;ELhJE;EACA;EKkJA,OLtLY;;AMFd;ENqCE;EACA;;AMlCF;EAEE;EACA;EACA;EACA;EACA;EACA,ONTY;EMUZ;EACA;EACA;EACA;;AAEF;EAEE,ONfY;EMgBZ;;AAEF;EAEE;;AAEF;EAEE,ON1BY;;AOCd;AAAA;EPkCE;EACA;EO/BA,OPLY;EOMZ;EACA;EACA;;AAEF;AAAA;EAGE;;AAEF;AAAA;EAGE,OPlBY;;AOoBd;AAAA;EAGE,OPpBY;;AOsBd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE,OPhCY;;AOmCd;EAEE;;AAGF;EPPE;EACA;EOSA,OP7CY;;AO+Cd;EAEE;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;;AAEF;EAEE;;AAEF;EAEE;;AAEF;EAEE,OP/EY;;AOiFd;AAAA;AAAA;EAIE,OPnFY;;AOqFd;EAEE;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;;ALlGF;AMHA;;ACAA;EAEE;EACA;EACA;EACA;;ACLF;EVqCE;EACA;EUnCA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE,OVNY;EUOZ;EACA;;AAEF;EAEE,OVpBY;EUqBZ,cVrBY;;AUuBd;EAEE,OVvBY;EUwBZ,cVxBY;EUyBZ;;AAGF;EAEE;EACA;EACA;EACA;;AAEF;EAEE;;AAEF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE,OVnDY;EUoDZ;;AAEF;EAEE,OVjDY;EUkDZ;EACA;EACA;;AR5DF;ASHA;;AAEA;EACE;EACA;EACA;;ATFF;ASKA;;AACA;EACE;EACA;EACA,cXVY;EWWZ;EACA;EACA;;ATZF;ASeA;;AACA;EACE,OXTY;;AWWd;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA,OXlBY;EWmBZ;;AT3BF;AS8BA;;AACA;AAAA;EAEE,OXzBY;EW0BZ;;ATlCF;ASqCA;;AACA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA,OXvCY;EWwCZ;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;ATxDF;AS2DA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;AACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA,OXlGY;;AEAd;ASqGA;;AACA;EACE,OX3FY;;AW6Fd;EACE;EACA;EACA;EACA;EACA;EACA,OXrGY;EWsGZ,kBXpGY;EWqGZ;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AT9HF;ASiIA;;AACA;AAAA;AAAA;EAGE;EACA;;AAEF;AAAA;EAEE;;AAEF;EACE;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAEF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA,OX3JY;;AW6Jd;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA,OXnLY;EWoLZ;EACA;;AAEF;EACE;;AAEF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA,OX5LY;EW6LZ,kBX/LY;;AWiMd;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACI;EACA;EACA;EACA;;AAEJ;AAAA;AAAA;AAAA;EAIE;;AAEF;AAAA;AAAA;EAGE;EACA;;AAEF;AAAA;AAAA;EAGE;EACA;;ATzOF;AS4OA;;AACA;EACE;EACA;;AAEF;EACE;;AAEF;AAAA;EAEE;EACA;EACA,OXjPY;EWkPZ,kBXpPY;EWqPZ;EACA;EACA;;AAEF;EACE;EACA;;AAEF;AAAA;EAEE;;AAEF;EACE;;ATvQF;AS0QA;;AACA;AAAA;EAEE;EACA;;AAEF;AAAA;AAAA;EAGE;EACA;;AAEF;AAAA;AAAA;EAGE;;AAEF;AAAA;AAAA;EAGE;EACA;;AAEF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAEF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA,OXzSY;EW0SZ;;AAEF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;;AAEF;AAAA;AAAA;AAGE;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAeE,OXxUY;;AEPd;ASkVA;;AACA;AAAA;AAAA;AAAA;EAIE,OXhVY;EWiVZ;EACA,cX7UY;EW8UZ,kBX7UY;;AEbd;AS8VA;;AACA;AAAA;EAEE;EACA;EACA;EACA;;AAEF;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;;AAEF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OXhXY;EWiXZ;EACA,kBX7XY;EW8XZ;;AAEF;AAAA;AAAA;AAAA;EAIE;;AAEF;EACE;;AAEF;AAAA;AAAA;EAGE;EACA;;AAEF;AAAA;AAAA;EAGE;EACA;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE,kBX7ZY;EW8ZZ;;ACjaF;EACE;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EZ2BE;EACA;EY1BA;EACA;EACA;EACA;EACA,OZHY;;AYMd;AAAA;EAEE;;AAGF;EACE;EACA;EACA,kBZrBY;EYsBZ;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA,kBZrCY;EYsCZ;;AAGF;AAAA;EAEE,kBZ3CY;;AaFd;EAEE;;AAEF;EAEE;;AAEF;EAEE;EACA;;AAEF;EAEE;;AAEF;EboBE;EACA;EalBA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE,ObtBY;EauBZ;;AAEF;EAEE,Ob1BY;Ea2BZ;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;AAEF;EAEE;EACA;EACA;;ACzFF;EAEE;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACQ;;AAEV;EAEE;EACA,OdHY;EcIZ,kBdfY;EcgBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AChCF;AAAA;EAGE;;AAEF;EAEE;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA,OfHY;EeIZ;;AAEF;EAEE;;AAEF;AAAA;EAGE,OfbY;;Aeed;EAEE;EACA,cflBY;;AeoBd;EAEE;;AAEF;AAAA;AAAA;EAIE;;AAGF;EAEE;EACA;EACA;EACA;;AAEF;EAEE;EACA;;AAEF;AAAA;EAGE;;AAEF;EAEE;EACA;;AAEF;EAEE;;AAEF;EAEE,OfpEY;;AesEd;AAAA;EAGE,OfhEY;EeiEZ,cfjEY;;AemEd;EAEE;;AAEF;AAAA;AAAA;AAAA;AAAA;EAME;EACA;;AAEF;AAAA;AAAA;AAAA;AAAA;EAME;;AAEF;EAEE;;AAEF;EAEE;;AbxGF;AcHA;;AACA;EAEE;;AAEF;EAEE;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AdZF;AeHA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE;EACA;EACA;EACA;;AAEF;EAEE;;AAEF;EAEE;EACA;EACA;;ACvBF;EAEE;;AAEF;AAAA;EAGE;EACA;EACA;;AAEF;AAAA;EAGE,kBlBNY;;AkBQd;EAEE;;AAEF;EAEE;;AAEF;EAEE;;AAEF;EAEE;EACA;;AAEF;EAEE,kBlB3BY;;AEcZ;EAnBF;AiBHA;;EAEA;IAEE;IACA;;EAEF;IAEE;IACA;;EjBPF;AiBUA;;EAEA;IAEE;;EAEF;IAEE;IACA;;EAEF;AAAA;IAGE;;EAEF;IAEE;IACA;IACA;;EAEF;AAAA;IAGE;;EAEF;IAEE;IACA,kBnBpCY;;EmBsCd;AAAA;IAGE;IACA;IACA;IACA;;EjBhDF;AiBmDA;;EAEA;IAEE,kBnBlDY;;EELd;AiB0DA;;EAEA;IAEE;IACA;;EjB/DF;AiBkEA;;EAEA;IAEE;IACA;;EAEF;IAEE;;EjB3EF;AiB+EA;;EAEA;IAEE;IACA;IACA;IACA;;EAGF;IAEE;;EAEF;IAEE;IACA;IACA;IACA;;EAEF;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IAEE;;EAEF;IAEE;IACA;;EAEF;IAEE;IACA,OnB7HY;;EmB+Hd;IAEE,cnBjIY;;EmBmId;IAEE,cnBnIY;;EmBqId;AAAA;IAGE;;EAEF;IAEE,OnB9IY;;EmBgJd;IAEE,OnBhJY;;EmBkJd;AAAA;AAAA;IAIE;IACA;;EjBxJF;AiB4JA;;EAEA;IAEE;IACA;IACA;IACA;;EAEF;IAEE;;EAEF;IAEE;;EAEF;AAAA;IAGE;IACA;IACA;;EjBlLF;AiBqLA;;EAEA;IAEE;;EAEF;IAEE,kBnBnLY;;EmBqLd;IAEE;;ECpMF;IAEE;;EAEF;IAEE;IACA;IACA;IACA;IACA,OpBRY;IoBSZ;;EAEF;IAEE;IACA;IACA;IACA;IACA;IACA;IACA,OpBRY;IoBSZ;IACA;;EAEF;IAEE,OpBzBY;IoB0BZ,cpB1BY;;EoB4Bd;IAEE,OpB5BY;IoB6BZ,cpB7BY;IoB8BZ;;;AlBRE;EAvBJ;AmBHA;AAgBA;AAwEA;AAkBA;AAyFA;AA4BA;AAsBA;;;ACrPA;EAEE;IAEE;;;ApBsBA;EmBxBJ;IAEE;;EAEF;IAEE;;EAEF;IAEE;;EAMF;IAEE;;EAEF;IAEE;;;AACA;EAHF;IAKI;;;AAEF;EAPF;IASI;;;AnBLA;EmBQJ;AAAA;IAGE;IACA;IACA;;EAEF;AAAA;AAAA;IAIE;IACA;IACA;AASA;AAAA;AAAA;IAGA;IACA;;;AAZA;EAPF;AAAA;AAAA;IASI;;;AAEF;EAXF;AAAA;AAAA;IAaI;;;AnB5BA;EmBoCJ;AAAA;AAAA;IAIE;IACA;;EAEF;IAEE;IACA;;EAEF;IAEE;IACA;IACA;;EAEF;IAEE;IACA;IACA;;EAMF;IAEE;;;AACA;EAHF;IAKI;IACA;;;AAEF;EARF;IAUI;IACA;;;AnB3EA;EmBkFJ;IAEE;IACA;IACA;IAaA;;;AAZA;EALF;IAOI;;;AAEF;EATF;IAWI;;EACA;IAEE;;;AnBhGF;EmBqGJ;IAEE;IACA;IACA;IACA;;EAGF;AAAA;AAAA;IAIE;IACA;IACA;IACA;;;AACA;EARF;AAAA;AAAA;IAUI;IACA;;;AAEF;EAbF;AAAA;AAAA;IAeI;IACA;;;AnB7HA;EmBgIJ;IAEE;;;AAIA;EAFF;IAII;;;AAEF;EANF;IAQI;;;AAKF;EAFF;IAII;;;AAEF;EANF;IAQI;;;AAOF;EAJF;AAAA;AAAA;IAMI;IACA;;;AnBjKA;EmB2KJ;IAEE;IACA;IACA;IACA;IACA;IACA,kBrBrMY;;EqBuMd;AAAA;IAGE;IASA,kBrBnNY;IqBoNZ;;;AATA;EAJF;AAAA;IAMI;;;AAEF;EARF;AAAA;IAUI;;;AnB9LA;EmBuMJ;AAAA;AAAA;IAIE;IACA;;;AACA;EANF;AAAA;AAAA;IAQI;IACA;IACA;;;AAEF;EAZF;AAAA;AAAA;IAcI;IACA;;;AnBtNA;EmB6NJ;AAAA;IAGE;IACA;IACA,kBrBrPY;IqBsPZ;IACA;;;AACA;EARF;AAAA;IAUI;IACA;;;AAEF;EAbF;AAAA;IAeI;IACA;;;AnB7OA;EmBgPJ;IAEE;;;AACA;EAHF;IAKI;IACA;;;AAEF;EARF;IAUI;IACA;;;AnB3PA;EqB1BJ;IAEE;;ECFF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IASE,OxBIY;;EyBbd;IAEE;IACA;IACA;;EAEF;IAEE;IACA;IACA;IACA,OzBEY;;EyBAd;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;IAWA,kBzBzBY;IyB0BZ;;;AAXA;EATF;IAWI;IACA;;;AAEF;EAdF;IAgBI;IACA;;;AvBJA;EuBSJ;IAEE,OzBxBY;IyByBZ,czBzBY;;EyB2Bd;IAEE,OzB7BY;IyB8BZ,czB9BY;IyB+BZ;;EAIF;AAAA;IAGE;IACA;IACA;IASA;;;AARA;EANF;AAAA;IAQI;;;AAEF;EAVF;AAAA;IAYI;;;AvBlCA;EuBqCF;AAAA;IAEE;IACA;IACA;;EAEF;AAAA;IAEE,OzB1DU;IyB2DV,czB3DU;;EyB6DZ;AAAA;IAEE;IACA;IACA;IACA;;;AvB5CF;EAhCF;AwBHA;;EAEA;AAAA;IAGE;IACA;;EAEF;IAEE,oB1BFY;;E0BId;AAAA;IAGE;;EAEF;AAAA;IAGE;IACA,kB1BRY;;E0BUd;AAAA;IAGE;;EAEF;AAAA;IAGE;IACA,kB1BnBY;;E2Bbd;AAAA;AAAA;AAAA;IAKE,O3BQY;;EEVd;A0BHA;;EACA;IAEE;;EAGF;IAEE;IACA;;EAEF;IAEE;IACA;IACA;IACA;IACA;;EAEF;IAEE;IACA;IACA;IACA;IACA;IACA;;EAEF;IAEE;;;A1BUE;E2BxCJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAOE;IACA;IACA;;;ACTF;EAEE;IAEE;;EAEF;IAEE;;;AAIJ;EAEE;IAEE;;EAEF;IAEE;;;A5B0BF;E6B9CF;IAEE;IACA;IACA;IACA;IACA;;EAEF;IAEE;;EAEF;IAEE;IACA;;EAEF;IAEE;;EAEF;IAEE;;;A7B6BA;E8BpDF;IAEE;;E9BCF;A+BHA;;EAEA;IAEE;IACA;;EAEF;IAEE;IACA;;E/BPF;A+BWA;;EAEA;IAEE;;EAEF;IAEE;;E/BnBF;A+BwBA;;EAEA;IAEE;;EAEF;IAEE;;EAEF;IAEE;;E/BpCF;A+BuCA;;EAEA;IAEE;;EAEF;IAEE;IACA;IACA;;EAEF;IAEE;IACA;IACA;IACA;;EAEF;IAEE;IAKA;IACA;;E/BlEF;A+BiGA;AAwCA;AAgDA;AAaA;AAWA;;;AApJE;EAHF;IAKI;;;A/BdF;E+BmBF;IAEE,OjCtEY;;EiCwEd;IAEE,OjChEY;IiCiEZ;;EAEF;AAAA;AAAA;IAIE,OjChFY;IiCiFZ;;EAEF;IAEE,OjC5EY;IiC6EZ;;EAEF;AAAA;AAAA;IAIE;;EAMF;IAEE;IACA;IACA;;EAEF;AAAA;AAAA;IAIE;;EAEF;IAEE;IACA;IACA;IACA;IACA;IACA,OjCvHY;IiCwHZ;;EAEF;IAEE;IACA;IACA;IACA;IACA;;EAEF;AAAA;AAAA;IAIE,OjCpIY;;EiC0Id;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBjChJY;;EiCiJZ;IAEE;IACA;;EAEF;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,OjC3JU;IiC4JV;;EAEF;IAEE;IACA;IACA;IACA;IACA;;EAEF;AAAA;AAAA;IAIE,OjCnLU;;EiC0Ld;IAEE;IACA,kBjC1LY;;EiC4Ld;IAEE,cjCxLY;;EiC8Ld;AAAA;AAAA;AAAA;IAKE,OjCnMY;;EiCyMd;IAEE;IACA;IACA;IACA,kBjCpNY;;;AkCPd;EAEE;IAEE,OlCFU;IkCGV;IACA;;;AhC8CF;EiCpDF;IAEE;IACA;IACA;;ECJF;IAEE;IACA;;EAEF;IAEE;;EAEF;IAEE,OpCEY;IoCDZ;IACA;IACA;;EAEF;IAEE,OpCLY;IoCMZ,cpCNY;;EoCQd;IAEE;IACA;IACA;IACA;IACA;;;AACA;EAPF;IASI,OpCpBU;IoCqBV;IACA;;;AlCoBF;EmCpDF;AAAA;AAAA;AAAA;AAAA;AAAA;IAOE;IACA;IACA;;ECTF;IAEE;;EAEF;IAEE;;EAEF;IAEE;IACA;IACA;;EAEF;IAEE;;EAEF;IAEE;IACA;IACA;;EAEF;IAEE;IACA;;;AACA;EAJF;IAMI;;;ApCsBF;EoCnBF;IAEE;IACA;IACA;;EAEF;IAEE;IACA;;;AACA;EAJF;IAMI;IACA;;;ApCMF;EoCHF;AAAA;IAGE;;EAEF;IAEE;;;AACA;EAHF;IAKI;;;ApCIF;EqC/DF;IAEE;;EAEF;IAEE;IACA;;EAEF;IAEE;IACA;;EAEF;AAAA;IAGE;IACA;;EAEF;AAAA;IAGE;IACA;;EAEF;IAEE;IACA;;;AAGF;EAEE;IAEE;;;AAGJ;EAEE;IAEE;;EAEF;IAEE;IACA;;EAEF;IAEE;;EAEF;AAAA;IAGE;IACA;IACA;;EAEF;AAAA;IAGE;;;ArCDF;EsC/DF;IAEE;;EAEF;IAEE;IACA;;EAEF;AAAA;IAGE;;EAEF;IAEE;IACA","file":"screen.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../../src/styles/variables.scss","../../src/styles/base/fonts.scss","../../src/styles/screen.scss","../../src/styles/base/browserreset.scss","../../src/styles/base/util.scss","../../src/styles/base/typo.scss","../../src/styles/base/head.scss","../../src/styles/base/navigation.scss","../../src/styles/base/content.scss","../../src/styles/base/marginal.scss","../../src/styles/base/footer.scss","../../src/styles/base/formulare.scss","../../src/styles/base/taxonomy.scss","../../src/styles/base/404.scss","../../src/styles/screen/head.scss","../../src/styles/screen/menu.scss","../../src/styles/screen/footer-sticky.scss","../../src/styles/screen/wip.scss","../../src/styles/screen/packs.scss","../../src/styles/screen/layout.scss","../../src/styles/screen/footer.scss","../../src/styles/tablet/layout.scss","../../src/styles/tablet/typo.scss","../../src/styles/tablet/menu.scss","../../src/styles/tablet/marginal.scss","../../src/styles/tablet/footer.scss","../../src/styles/screen/faux-column.scss","../../src/styles/screen/marginal.scss","../../src/styles/screen/content.scss","../../src/styles/screen/onecolumn.scss","../../src/styles/tablet/head.scss","../../src/styles/tablet/404.scss","../../src/styles/phone/typo.scss","../../src/styles/phone/layout.scss","../../src/styles/phone/head.scss","../../src/styles/phone/menu.scss","../../src/styles/phone/footer.scss","../../src/styles/phone/packs.scss","../../src/styles/phone/404.scss","../../src/styles/tiny/layout.scss","../../src/styles/tiny/404.scss"],"names":[],"mappings":"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","file":"screen.css"}
\ No newline at end of file
---
import { getEntry } from 'astro:content';
+import { codeToHtml } from 'shiki';
+import hljs from 'highlight.js';
import BaseLayout from '../layouts/BaseLayout.astro';
import Breadcrumb from '../components/Breadcrumb.astro';
import BlogNav from '../components/BlogNav.astro';
entryId: string;
}
+const THEME = 'one-dark-pro';
+const MIN_RELEVANCE = 8;
+
+function decodeEntities(s: string): string {
+ return s
+ .replace(/&/g, '&')
+ .replace(/</g, '<')
+ .replace(/>/g, '>')
+ .replace(/"/g, '"')
+ .replace(/'/g, "'")
+ .replace(/'/g, "'");
+}
+
+async function replaceAsync(
+ str: string,
+ regex: RegExp,
+ fn: (match: string, ...groups: string[]) => Promise<string>
+): Promise<string> {
+ const promises: Promise<string>[] = [];
+ str.replace(regex, (match, ...groups) => { promises.push(fn(match, ...groups)); return ''; });
+ const results = await Promise.all(promises);
+ let i = 0;
+ return str.replace(regex, () => results[i++]);
+}
+
+async function toShiki(code: string, lang: string): Promise<string> {
+ try {
+ return await codeToHtml(code, { lang, theme: THEME });
+ } catch {
+ return codeToHtml(code, { lang: 'text', theme: THEME });
+ }
+}
+
+async function highlightBody(html: string): Promise<string> {
+ // Pass 1: labeled Markdown blocks — <pre><code class="language-LANG">...</code></pre>
+ html = await replaceAsync(
+ html,
+ /<pre><code class="language-([^"]+)">([\s\S]*?)<\/code><\/pre>/g,
+ async (match, lang, rawCode) => {
+ const code = decodeEntities(rawCode);
+ try {
+ return await toShiki(code, lang);
+ } catch {
+ return match;
+ }
+ }
+ );
+
+ // Pass 2: unlabeled APT blocks — <pre>...</pre> (no attributes)
+ html = await replaceAsync(
+ html,
+ /<pre>([\s\S]*?)<\/pre>/g,
+ async (_, rawCode) => {
+ const code = decodeEntities(rawCode);
+ const detected = hljs.highlightAuto(code);
+ const lang = (detected.language && detected.relevance >= MIN_RELEVANCE)
+ ? detected.language
+ : 'text';
+ return toShiki(code, lang);
+ }
+ );
+
+ return html;
+}
+
const { entryId } = Astro.props;
const entry = await getEntry('projects', entryId);
if (!entry) throw new Error(`Project entry not found: ${entryId}`);
{ title: 'Projects', url: '/projects/' },
{ title },
];
+
+const body = await highlightBody(entry.body);
---
<BaseLayout title={title} canonical={canonical}>
</Fragment>
<Fragment slot="article">
- <div set:html={entry.body} />
+ <div set:html={body} />
</Fragment>
<Fragment slot="menu">