This commit is contained in:
+2
-11
@@ -1,11 +1,5 @@
|
||||
// Pinger IndexNow (Bing/Yandex/Seznam m.fl.) med de sider dette push faktisk ændrede.
|
||||
//
|
||||
// Vi sender bevidst IKKE hele sitemappet hver gang: IndexNow er til "det her ændrede sig
|
||||
// nu", og gentagne fuld-lister ser ud som støj. Kan vi ikke regne diffen ud, springer vi
|
||||
// over frem for at gætte.
|
||||
//
|
||||
// Kør efter `astro build` — dist/sitemap-0.xml bruges som facitliste over gyldige URL'er.
|
||||
// Google understøtter ikke IndexNow; det her hjælper kun de øvrige motorer.
|
||||
// Pinger IndexNow med de sider der er ændret i dette push.
|
||||
// Kør efter `astro build` (bruger dist/sitemap-0.xml).
|
||||
|
||||
import { execFileSync } from 'node:child_process';
|
||||
import fs from 'node:fs';
|
||||
@@ -62,8 +56,6 @@ const urls = [...new Set(files.map(routeForFile).filter(Boolean).map((r) => ORIG
|
||||
valid.has(u),
|
||||
);
|
||||
|
||||
// Layout/CSS/config-ændringer rammer hver side, men det er ikke en indholdsændring
|
||||
// værd at pinge om. Kun ruter med eget ændret kildefil ryger afsted.
|
||||
if (!urls.length) {
|
||||
console.log('IndexNow: ingen sider med ændret indhold i dette push — springer over.');
|
||||
process.exit(0);
|
||||
@@ -91,7 +83,6 @@ const res = await fetch('https://api.indexnow.org/indexnow', {
|
||||
body: JSON.stringify(body),
|
||||
});
|
||||
|
||||
// 200 = modtaget, 202 = modtaget men nøglen valideres stadig. Begge er fine.
|
||||
console.log(`IndexNow: HTTP ${res.status} ${res.statusText}`);
|
||||
if (![200, 202].includes(res.status)) {
|
||||
console.log(await res.text().catch(() => ''));
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
// Spærre før build: intet blogindlæg går live uden at være godkendt.
|
||||
//
|
||||
// Hvert indlæg i src/content/blog skal bære et `godkendt:`-stempel i frontmatter.
|
||||
// Stemplet er en HMAC-SHA256 over filens sti + indhold (uden selve stempel-linjen)
|
||||
// + sha256 af hvert billede i indlæggets mappe (src/content/blog/<slug>/),
|
||||
// lavet med en nøgle som kun godkendelsestjenesten og denne workflow kender. Et
|
||||
// indlæg der er lagt direkte i repoet, eller ændret efter godkendelse, har derfor
|
||||
// intet eller et forkert stempel, og så stopper buildet før noget bliver deployet.
|
||||
//
|
||||
// Udkast hører ikke hjemme her: repoet er offentligt, så `draft: true` ville stadig
|
||||
// udgive teksten via git. Udkast ligger i et privat repo indtil de er godkendt.
|
||||
// Stopper buildet hvis et blogindlæg mangler et gyldigt `godkendt:`-stempel
|
||||
// (HMAC-SHA256 over sti, indhold og billeder).
|
||||
//
|
||||
// PUBLISH_KEY=<hex> node scripts/verify-approvals.mjs
|
||||
import crypto from 'node:crypto';
|
||||
@@ -21,8 +12,7 @@ if (!key) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Skal matche godkendelsestjenesten byte for byte. Et indlæg uden billeder har
|
||||
// ingen @asset-linjer, så dets stempel er det samme som før billeder fandtes.
|
||||
// Skal matche godkendelsestjenesten byte for byte.
|
||||
const canonical = (relPath, text, assets = []) => {
|
||||
const lines = text.replace(/\r\n/g, '\n').split('\n');
|
||||
if (lines[0] === '---') {
|
||||
|
||||
Reference in New Issue
Block a user