Skip to content

Commit 19ca213

Browse files
Martin Berg Alstadmartin
andauthored
Docs (#150)
* Skrevet om mappestruktur i README og andre småting. Laget .md for CONTRIBUTING og pull request template * Fjernet sider.md, fjernet innhold i Readme som er flyttet til wiki. Skrevet enkel CONTRIBUTING.md og pull_request_template.md * Lenke til Wiki * Lagt inn prettier pattern i Readme --------- Co-authored-by: martin <me@martials.no>
1 parent e7b9ece commit 19ca213

4 files changed

Lines changed: 74 additions & 134 deletions

File tree

.github/CONTRIBUTING.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## For medlemmer av PIN (Project \<Insert Name>)
2+
3+
Alle endringene til prosjektet skal gjøres gjennom pull requests.
4+
Endringene gjøres i en egen branch, og en pull request opprettes til `main`-branchen.
5+
6+
## For andre
7+
8+
Dersom du ikke er medlem av PIN, har du to valg for å bidra til prosjektet:
9+
10+
### Fork
11+
12+
1. Trykk på `Fork`-knappen øverst til høyre på denne siden.
13+
2. Følg instruksjonene for å forke prosjektet.
14+
3. Gjør endringene i din fork.
15+
4. Når du er ferdig med endringene, trykk på `Pull request`-knappen på din fork.
16+
5. Lag en pull request til `main`-branchen i dette prosjektet.
17+
18+
### Be om tilgang
19+
20+
Ta kontakt med en av [utviklerne](https://github.com/orgs/Project-insert-name/people) med **owner** tilgang i PIN for å få tilgang til prosjektet.

.github/pull_request_template.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### Beskriv endringene
2+
3+
### Relaterte issues

README.md

Lines changed: 51 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
# Root Hjemmeside
1+
# Root Linjeforening Hjemmeside
22

3-
Laget av **PIN**
3+
Laget av kodegruppen **PIN**
4+
![](public/root-logo.svg)
45

56
---
67

7-
## Innhold
8+
> [!NOTE]
9+
> For bugs eller forslag til forbedringer, opprett en issue i [issues](https://github.com/Project-insert-name/root-website/issues).
810
9-
- [Stack](#stack)
10-
- [Setup](#setup)
11+
## 📑 Innhold
12+
13+
- [Stack](#-stack)
14+
- [Setup](#-setup)
1115

1216
- [Installere avhengigheter](#installere-avhengigheter)
1317
- [Prettier](#prettier)
1418
- [VSCode](#vscode)
1519
- [Intellij / Webstorm / Annen JetBrains IDE](#intellij--webstorm--annen-jetbrains-ide)
1620
- [Starte utviklingsserver](#starte-utviklingsserver)
21+
- [Starte produksjonsserver](#starte-produksjonsserver)
1722

18-
- [Praktisk info](#praktisk-info)
19-
- [App router](#app-router)
23+
- [Praktisk info](#-praktisk-info)
2024
- [Mappestruktur](#mappestruktur)
21-
- [Server components](#server-components)
2225
- [PNPM](#pnpm)
23-
- [Sanity](#sanity)
24-
- [Sanity Studio](#sanity-studio)
25-
- [Sanity Typed](#sanity-typed)
2626

27-
## Stack
27+
## 🤖 Stack
2828

2929
- [Next.js](https://nextjs.org/)
3030
- [NextUI](https://nextui.org/)
@@ -35,7 +35,7 @@ Laget av **PIN**
3535
- [Sanity](https://www.sanity.io/)
3636
- [Prettier](https://prettier.io/)
3737

38-
## Setup
38+
## 💻 Setup
3939

4040
### Installere avhengigheter
4141

@@ -68,99 +68,65 @@ Slik at prettier formatterer koden din automatisk når du lagrer.
6868
Gå til "Language & Frameworks -> JavaScript -> Prettier", sett configuration til automatic og kryss av for "Run on
6969
save".
7070

71+
Pattern bør matche det som er satt i `package.json` i `format` scriptet.
72+
73+
`{**/*,*}.{js,jsx,ts,tsx,json,yml,css,md}`
74+
7175
### Starte utviklingsserver
7276

77+
Kjører i development mode på [http://localhost:3000](http://localhost:3000).
78+
79+
Bruker dev datasettet fra Sanity.
80+
7381
```bash
7482
pnpm dev
75-
# eller
76-
next dev
7783
```
7884

79-
## Praktisk info
85+
### Starte produksjonsserver
8086

81-
Se
82-
også [Krav til nettsiden](https://github.com/Project-insert-name/root-website-frontend/blob/main/Krav%20til%20nettsiden.md)
83-
og [info om de ulike sidene](https://github.com/Project-insert-name/root-website-frontend/blob/main/Sider.md).
87+
Kjører i production mode på [http://localhost:3000](http://localhost:3000).
88+
89+
Bruker production datasettet fra Sanity.
8490

85-
### App router
91+
```bash
92+
pnpm build && pnpm start
93+
```
8694

87-
Applikasjonen bruker Next.js 13+ sin nye [App router](https://nextjs.org/docs/app/building-your-application).
88-
Det vil si at alle filer knyttet til de ulike sidene skal ligge under app mappen, på følgende
89-
format. `app/navn-paa-path/page.tsx`
95+
## 👉 Praktisk info
9096

91-
- For at filen skal bli til en rute <ins>må</ins> den hete `page.tsx`, dersom den heter noe annet kan den ikke nås via
92-
url.
97+
Se
98+
også [Krav til nettsiden](https://github.com/Project-insert-name/root-website-frontend/blob/main/Krav%20til%20nettsiden.md).
9399

94-
Filer som heter `layout.tsx` blir automatisk wrappet rundt alle andre routes i samme mappe og nedover i mappestrukturen.
100+
> [!NOTE]
101+
> For mer info om Next.js og Sanity, se [wiki](https://github.com/Project-insert-name/root-website/wiki) eller dokumentasjonen til de respektive rammeverkene.
95102
96103
### Mappestruktur
97104

98-
| Mappe | Beskrivelse |
99-
| ---------- | ------------------------------------------------------------------- |
100-
| app | Filer knyttet til routes/pages |
101-
| components | React komponenter som brukes av pages eller andre komponenter |
102-
| hooks | Custom hooks som kan brukes i client components på nettsiden |
103-
| public | Bilder, fonter og andre ikke-kode filer som skal vises i nettsiden |
104-
| sanity | Filer knyttet til Sanity. Som schemas, queries, typer og andre ting |
105-
| utils | Nyttige hjelpefunksjoner |
105+
- [.github](/.github) (GitHub actions, dependabot og templates)
106+
- [app](/app) (Filer knyttet til routes/pages)
107+
- [(root)](</app/(root)>) (Hovedmappen for alle ruter som ikke tilhører sanity)
108+
- [(sanity)](</app/(sanity)>) (Hovedmappen for alle ruter som tilhører sanity)
109+
- [components](/components) (React komponenter som brukes av pages eller andre komponenter)
110+
- [buttons](/components/buttons) (Diverse knapper)
111+
- [cards](/components/cards) (Kort som brukes for å vise innhold, som arrangementer, nyheter og lignende)
112+
- [header](/components/header) (Mavigasjonsbaren med lenkene)
113+
- [icons](/components/icons) (Komponenter som bygger rundt heroicons og SVG ikoner)
114+
- [imageGallery](/components/imageGallery) (Komponenter for bildegalleriet)
115+
- [omOss](/components/omOss) (Komponenter for om oss siden)
116+
- [hooks](/hooks) (Custom hooks som kan brukes i client components på nettsiden)
117+
- [public](/public) (Bilder, fonter og andre ikke-kode filer som skal vises i nettsiden)
118+
- [sanity](/sanity) (Filer knyttet til Sanity. Som schemas, queries, typer og andre ting)
119+
- [lib](/sanity/lib) (Sanity relaterte funksjoner)
120+
- [queries](/sanity/queries) (Spørringer mot sanity)
121+
- [schemas](/sanity/schemas) (Sanity schemas)
122+
- [utils](/utils) (Nyttige hjelpefunksjoner)
106123

107124
Merk at `app` mappen er delt inn i to ulike grupper, `(root)` og `(sanity)`. Hvor filene kun eksisterer i den gruppen de er definert i.
108125
Hvis de er definert utenfor en gruppe, vil de eksistere i alle grupper.
109126
(sanity) mappen brukes bare for studio, siden studioet bruker en egen stil og trenger ikke samme layout som resten av nettsiden.
110127

111-
### Server components
112-
113-
**Next.js 13**+ støtter
114-
også [react server components](https://nextjs.org/docs/app/building-your-application/rendering/server-components)
115-
for å kjøre kode på en server før resultatet blir sendt til klienten.
116-
Det er noen begrensninger på server components, blant annet av [react hooks](https://react.dev/reference/react) ikke er
117-
støttet, da må man bruke client components.
118-
119-
Alle komponenter i next.js 13+ er server components som standard, man kan gjøre de om til client components ved å
120-
skrive "use client" i toppen av filen.
121-
122128
### PNPM
123129

124130
Hvis du skal installere en ny pakke, bruk kommandoen `pnpm -w add din-pakke`.
125131

126132
De fleste kommandoer fra **NPM** virker også med **PNPM**
127-
128-
### Sanity
129-
130-
**Sanity** er et headless CMS som brukes til å administrere innholdet på nettsiden.
131-
132-
Innhold defineres ved hjelp av [schemas](https://www.sanity.io/docs/schema-types) som er laget i `.ts` filer.
133-
Schemas legges i `sanity/schemas`, og importeres inn i `sanity/schema.ts` og legges til i `types` listen.
134-
135-
#### Sanity Studio
136-
137-
[Studio](https://www.sanity.io/studio) er et webgrensesnitt som brukes til å administrere innholdet på nettsiden.
138-
Studioet er tilgjengelig på `/studio`.
139-
140-
For å bruke studioet må du først ha fått tilgang til Sanity, via en invitasjon på epost.
141-
142-
#### Sanity Typed
143-
144-
[Sanity typed](https://www.sanity.io/plugins/sanity-typed) er en plugin som genererer TypeScript typer basert på Sanity
145-
schemas.
146-
147-
For at typene skal genereres riktig, må imports for `defineType`, `defineField` og lignende være
148-
fra `@sanity-typed/types` ikke `sanity`.
149-
Referanser i schema må også markeres med `as const` for å ikke gi en feilmelding.
150-
151-
For å lage en type for et schema, må det legges inn i `sanity/types.ts`
152-
153-
```ts
154-
// Henter ut typene fra schema som heter "event"
155-
export type RootEvent = SanityValues["event"]
156-
```
157-
158-
Merk at typer fra plugins blir ikke oppdaget av `sanity-typed` og de vil få typen `unknown`.
159-
De kan bli gitt en type explicit ved å legge det til i ts typen.
160-
161-
```ts
162-
export type RootEvent = SanityValues["event"] & {
163-
// Overskriver eksisterende type som er "unknown"
164-
description: Markdown
165-
}
166-
```

Sider.md

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)