BunStackDocs

For utviklere

Slik holdes dokumentasjonen oppdatert

Docs-as-code: hvor sidene bor, hvordan de bygges, hvorfor hver PR må røre dem, og hvordan 'sist oppdatert' beregnes.

Sist oppdatert · 2 min lesing · Foreslå endring

Hvor sidene bor

apps/docs/content/<språk>/<seksjon>/<side>.md, ett tre per språk: sv (standard og komplett), en, no, da, fi. Samme mapper og filnavn i alle språk. En side som mangler på et språk, vises fra sv med en merknad "ikke oversatt ennå", så en lenke er aldri brutt og et nytt språk kan vokse side for side. sections.json per språk gir seksjonenes navn.

Frontmatter:

---
title: "Sidens tittel"
description: "Én setning som vises i søk og kort."
order: 2
updated: 2026-09-05
keywords: [ord, som, hjelper, søket]
---

Seksjonene og rekkefølgen deres finnes i apps/docs/content/<språk>/sections.json. En ny mappe uten oppføring der havner sist i navigasjonen med mappenavnet som tittel.

Språk i adressen

Svensk ligger på roten (/frakt/sendify), øvrige språk har prefiks (/en/frakt/sendify, /no/...). Språkvelgeren i toppteksten bytter språk på samme side, og hver side deklarerer hreflang for alle språk, slik at søkemotorer viser riktig versjon.

Bygget

apps/docs/scripts/build-content.mjs kjøres før next build og genererer navigasjon, HTML per side, innholdsfortegnelse, søkeindeks og endringslogg. Markdown renderes med marked; tabeller, kodeblokker og sitater (brukt som merknader) støttes.

Sist oppdatert

Per side: siste git-commit som har rørt filen. Deploy-workflowen henter hele historikken, så datoen er nøyaktig. I miljøer med grunn historikk (Vercel Preview) brukes updated: i frontmatter, deretter byggetiden. Forsiden og bunnteksten viser siste oppdatering i hele dokumentasjonen.

Endringslogg

/changelog bygges av merge-commits til main: PR-nummer, tittel (med type som Nytt, Rettet) og område fra commit-prefikset.

Regelen: ingen produktendring uten docs

Workflowen Docs required stopper en pull request som endrer admin, butikk, designer, plattformkomponenter, migrasjoner eller edge functions uten å røre apps/docs/content/**. Den foreslår hvilke sider som trolig berøres. Etiketten docs-not-needed på PR-en, eller [no-docs] i tittelen, slipper gjennom rene refaktoreringer.

Publisering

Docs deploy kjører ved hver push til main: bygger innholdet med full git-historikk og publiserer til Vercel-prosjektet bunstack-docs (docs.bunstack.co). Mangler hemmelighetene VERCEL_TOKEN og VERCEL_DOCS_PROJECT_ID, bygges nettstedet, men publiseres ikke, med en merknad i jobben.