Lokalt oppsett

Sist endret: 2026-05-05 00:41av bruker: Erik Hagen ID: e26cb201-0841-46b2-8ac7-2ba3708edde6 SAMT-X/solution-samt-bu-docs

Dette alternativet gir deg et fullt lokalt arbeidsmiljø der du kan forhåndsvise alle endringer i nettleseren mens du skriver. Anbefalt for strukturelle endringer, nytt innhold i større omfang eller teknisk utvikling.

Hva du trenger

VerktøyVersjonFormål
GitSiste stabileVersjonskontroll
Hugo Extended0.155.3 eller nyereNettstedsgenerator
Go1.21 eller nyereKreves av Hugo Modules
TeksteditorVS Code anbefales

Installasjon på Windows

winget install --id Git.Git
winget install --id Hugo.Hugo.Extended
winget install --id GoLang.Go
winget install --id Microsoft.VisualStudioCode

Start terminalen på nytt etterpå, slik at de nye programmene er tilgjengelige i PATH.

Verifiser installasjonen:

git --version
hugo version
go version

Installasjon på macOS

brew install git hugo go

Installasjon på Linux (Ubuntu/Debian)

sudo apt install git golang
# Hugo Extended hentes fra GitHub Releases (apt-versjonen er ofte for gammel):
wget https://github.com/gohugoio/hugo/releases/download/v0.155.3/hugo_extended_0.155.3_linux-amd64.deb
sudo dpkg -i hugo_extended_0.155.3_linux-amd64.deb

Innholdsstruktur – flere repos

SAMT-BU Docs er satt opp med innholdsmoduler: innhold fra ulike team og piloter ligger i egne GitHub-repoer og monteres automatisk inn i nettstedet ved publisering.

RepoInnholdMontert under
samt-bu-docsHoveddokumentasjon, konfigurasjon(rot)
samt-bu-pilot-1Pilot 1pilotering/pilot-1/
samt-bu-pilot-2Pilot 2pilotering/pilot-2/
samt-bu-pilot-3Pilot 3pilotering/pilot-3/
samt-bu-pilot-4Pilot 4pilotering/pilot-4/
team-architectureOverordnet arkitekturarkitektur/overordnet-arkitektur/
team-semanticsInformasjonsarkitekturarkitektur/informasjonsarkitektur/
samt-bu-draftsUtkast og innspillutkast/
solution-samt-bu-docsTeknisk dokumentasjonprosjektleveranser/…

Scenario A – Kun forhåndsvisning av hele nettstedet

git clone --recurse-submodules https://github.com/SAMT-X/samt-bu-docs.git
cd samt-bu-docs
hugo server

Åpne http://localhost:1313/ i nettleseren.

Scenario B – Redigere innhold i ett bestemt repo

git clone https://github.com/SAMT-X/samt-bu-pilot-2.git
cd samt-bu-pilot-2
# rediger filer i content/
git add .
git commit -m "Beskrivelse av endringen"
git push

Nettstedet oppdateres automatisk innen ca. ett minutt.

Scenario C – Full lokal utvikling på tvers av alle repos

git clone --recurse-submodules https://github.com/SAMT-X/samt-bu-docs.git
git clone https://github.com/SAMT-X/samt-bu-pilot-1.git
# ... osv. for de modulene du vil jobbe med

cd samt-bu-docs
tools/hugo-local.sh

Scriptet finner lokale kloner automatisk og starter Hugo med disse. Moduler du ikke har klonet hentes fra GitHub.

samt-bu-docs/            ← klon alltid denne
samt-bu-pilot-1/         ← klon de du vil redigere
...

Med utkast:

tools/hugo-local.sh --drafts

Skrive innhold

---
title: "Sidetittel"
weight: 30
---

Her begynner innholdet ditt i vanlig Markdown.
  • title – sidetittel som vises i menyen og øverst på siden
  • weight – sorteringsrekkefølge (lavere tall = høyere opp i menyen)
  • draft: true – skjuler siden fra publisering inntil den er klar

Lagre og publisere endringer

git add content/sti/til/filen/_index.nb.md
git commit -m "Kort beskrivelse av hva du endret"
git pull --rebase
git push

GitHub Actions bygger og publiserer automatisk etter 1–2 minutter.

Uten skrivetilgang? Opprett en branch og pull request: git checkout -b mitt-bidrag → gjør endringer → git push origin mitt-bidrag → åpne PR på GitHub.

Nyttige kommandoer

KommandoBeskrivelse
tools/hugo-local.shStart lokal server med automatisk modulerstatning
tools/hugo-local.sh --draftsInkluder også utkast
hugo serverStart lokal server (henter moduler fra GitHub)
hugoBygg til public/ (sjekk for feil)
git pull --rebaseHent siste endringer og rebase

Synkronisering og konflikthåndtering

Når flere bidragsytere jobber samtidig – eller når noen lagrer via nettlesergrensesnittet mens du har en lokal kopi – kan repoene komme ut av synk.

Hjelpeskriptene

I rotmappen for dine lokale kloner ligger tre skript:

SkriptFunksjon
pull-all.sh / .batHenter siste endringer fra GitHub for alle repoer
push-all.sh / .batPusher upushede lokale commits til GitHub
sync-all.sh / .batKombinert: henter, fletter og pusher i riktig rekkefølge

Anbefalt arbeidsflyt:

Før du begynner:    sync-all
Underveis:          commit hyppig  →  push-all
Når du er ferdig:   sync-all

Hva sync-all gjør

SituasjonHandling
Likt lokalt og på GitHubIngenting
Kun GitHub forangit pull (fast-forward)
Kun du forangit push
Begge har nye commitsRebase
Ucommittede endringerStash → sync → stash pop
Uløsbar konfliktStopp, rapport, ingen data tapes

Manuell konfliktløsning

cd "<sti til repo>"
git pull --rebase
# Åpne filen og se etter markørene:
#   <<<<<<< HEAD  ← din versjon
#   =======
#   >>>>>>> abc1234  ← remote
# Slett markørene, behold riktig innhold.
git add <filnavn>
git rebase --continue
git push

go.mod / go.sum-konflikter

git pull --rebase
git checkout --theirs go.mod go.sum
hugo mod tidy
git add go.mod go.sum
git rebase --continue
git push

UUID-workflow og avviste pushes

GitHub Actions committer UUID-felt automatisk etter push av nye filer. Hvis du pusher to ganger raskt:

git pull --rebase && git push

Forebygging:

git add <filer> && git commit -m "..." && git pull --rebase && git push