BunStackDocs

Til udviklere

Sådan holdes dokumentationen opdateret

Docs-as-code: hvor siderne bor, hvordan de bygges, hvorfor hver PR skal røre dem, og hvordan 'senest opdateret' beregnes.

Senest opdateret · 2 min læsning · Foreslå ændring

Hvor siderne bor

apps/docs/content/<sprog>/<sektion>/<side>.md, ét træ pr. sprog: sv (standard og komplet), en, no, da, fi. Samme mapper og filnavne på alle sprog. En side, der mangler på et sprog, vises fra sv med en note "ikke oversat endnu", så et link aldrig er brudt, og et nyt sprog kan vokse side for side. sections.json pr. sprog giver sektionernes navne.

Frontmatter:

---
title: "Sidens titel"
description: "Én sætning, der vises i søgning og kort."
order: 2
updated: 2026-09-05
keywords: [ord, der, hjælper, søgningen]
---

Sektionerne og deres rækkefølge findes i apps/docs/content/<sprog>/sections.json. En ny mappe uden post dér havner sidst i navigationen med mappenavnet som titel.

Sprog i adressen

Svensk ligger på roden (/frakt/sendify), øvrige sprog har præfiks (/en/frakt/sendify, /da/...). Sprogvælgeren i sidehovedet skifter sprog på samme side, og hver side deklarerer hreflang for alle sprog, så søgemaskiner viser den rigtige version.

Buildet

apps/docs/scripts/build-content.mjs køres før next build og genererer navigation, HTML pr. side, indholdsfortegnelse, søgeindeks og ændringslog. Markdown renderes med marked; tabeller, kodeblokke og citater (brugt som noter) understøttes.

Senest opdateret

Pr. side: seneste git-commit, der har rørt filen. Deploy-workflowet henter hele historikken, så datoen er præcis. I miljøer med grund historik (Vercel Preview) bruges updated: i frontmatter, derefter buildtiden. Forsiden og sidefoden viser den seneste opdatering i hele dokumentationen.

Ændringslog

/changelog bygges af merge-commits til main: PR-nummer, titel (med type som Nyt, Rettet) og område fra commit-præfikset.

Reglen: ingen produktændring uden docs

Workflowet Docs required stopper en pull request, der ændrer admin, butik, designer, platformkomponenter, migrationer eller edge functions uden at røre apps/docs/content/**. Det foreslår, hvilke sider der sandsynligvis berøres. Etiketten docs-not-needed på PR'en, eller [no-docs] i titlen, slipper rene refaktoreringer igennem.

Udgivelse

Docs deploy kører ved hvert push til main: bygger indholdet med fuld git-historik og udgiver til Vercel-projektet bunstack-docs (docs.bunstack.co). Mangler hemmelighederne VERCEL_TOKEN og VERCEL_DOCS_PROJECT_ID, bygges sitet, men udgives ikke, med en note i jobbet.