mirror of
https://github.com/gohugoio/hugoDocs.git
synced 2025-08-03 12:38:14 -04:00
Add some fake versions setup
This commit is contained in:
parent
982b863c3a
commit
cec0117a0b
@ -1,4 +1,4 @@
|
||||
---
|
||||
title: The world's fastest framework for building websites
|
||||
title: The world's fastest framework for building websites!
|
||||
description: Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.
|
||||
---
|
||||
|
13
content/nn/_common/gomodules-info.md
Normal file
13
content/nn/_common/gomodules-info.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
_comment: Do not remove front matter.
|
||||
---
|
||||
|
||||
> [!note] Hugo-modular er Go-modular
|
||||
> Du treng [Go] versjon 1.18 eller nyare og [Git] for å bruke Hugo-modular. For eldre nettsider på Netlify, må du sørgje for at miljøvariabelen `GO_VERSION` er sett til `1.18` eller høgare.
|
||||
>
|
||||
> Ressursar om Go-modular:
|
||||
> - [go.dev/wiki/Modules](https://go.dev/wiki/Modules)
|
||||
> - [blog.golang.org/using-go-modules](https://go.dev/blog/using-go-modules)
|
||||
|
||||
[Git]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
|
||||
[Go]: https://go.dev/doc/install
|
5
content/nn/_index.md
Normal file
5
content/nn/_index.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Verdas raskaste rammeverk for å byggja nettsider!
|
||||
description: Hugo er ein av dei mest populære opne-kjeldekode statiske nettstadgeneratorane. Med si utruleg fart og fleksibilitet, gjer Hugo det kjekt å byggja nettsider igjen.
|
||||
languages: [nn]
|
||||
---
|
284
content/nn/configuration/introduction.md
Normal file
284
content/nn/configuration/introduction.md
Normal file
@ -0,0 +1,284 @@
|
||||
---
|
||||
title: Introduksjon
|
||||
description: Konfigurer nettstaden din ved hjelp av filer, mapper og miljøvariablar.
|
||||
categories: []
|
||||
keywords: []
|
||||
weight: 10
|
||||
---
|
||||
|
||||
## Fornuftige standardverdiar
|
||||
|
||||
Hugo tilbyr mange konfigurasjonsalternativ, men standardverdiane er ofte tilstrekkelege. Ein ny nettstad krev berre desse innstillingane:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
baseURL = 'https://example.org/'
|
||||
languageCode = 'en-us'
|
||||
title = 'My New Hugo Site'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Definer berre innstillingar som avvik frå standardverdiane. Ei mindre konfigurasjonsfil er enklare å lese, forstå og feilsøkje. Hald konfigurasjonen din kortfatta.
|
||||
|
||||
> [!note]
|
||||
> Den beste konfigurasjonsfila er ei kort konfigurasjonsfil.
|
||||
|
||||
## Konfigurasjonsfil
|
||||
|
||||
Opprett ei konfigurasjonsfil for nettstaden i rotmappa til prosjektmappa, med namnet `hugo.toml`, `hugo.yaml`, eller `hugo.json`, i denne prioriteringsrekkjefølgja.
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── hugo.toml
|
||||
```
|
||||
|
||||
> [!note]
|
||||
> For versjonar v0.109.0 og tidlegare, heitte konfigurasjonsfila for nettstaden `config`. Sjølv om du framleis kan bruka dette namnet, er det tilrådd å byta til den nyare namnjekonvensjonen, `hugo`.
|
||||
|
||||
Eit enkelt døme:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
baseURL = 'https://example.org/'
|
||||
languageCode = 'en-us'
|
||||
title = 'ABC Widgets, Inc.'
|
||||
[params]
|
||||
subtitle = 'The Best Widgets on Earth'
|
||||
[params.contact]
|
||||
email = 'info@example.org'
|
||||
phone = '+1 202-555-1212'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
For å bruka ei anna konfigurasjonsfil når du byggjer nettstaden, bruk `--config`-flagget:
|
||||
|
||||
```sh
|
||||
hugo --config other.toml
|
||||
```
|
||||
|
||||
Kombiner to eller fleire konfigurasjonsfiler, med venstre-til-høgre prioritet:
|
||||
|
||||
```sh
|
||||
hugo --config a.toml,b.yaml,c.json
|
||||
```
|
||||
|
||||
> [!note]
|
||||
> Sjå spesifikasjonane for kvart filformat: [TOML], [YAML], og [JSON].
|
||||
|
||||
## Konfigurasjonsmappe
|
||||
|
||||
I staden for ei enkelt konfigurasjonsfil for nettstaden, kan du dela konfigurasjonen din etter ASD, rotkonfigurajonsnøkkel og språk. Til dømes:
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── config/
|
||||
├── _default/
|
||||
│ ├── hugo.toml
|
||||
│ ├── menus.en.toml
|
||||
│ ├── menus.de.toml
|
||||
│ └── params.toml
|
||||
└── production/
|
||||
└── params.toml
|
||||
```
|
||||
|
||||
Rotkonfigurasjonsnøklane er {{< root-configuration-keys >}}.
|
||||
|
||||
### Utelat rotnøkkelen
|
||||
|
||||
Når du deler konfigurasjonen etter rotnøkkel, utelat rotnøkkelen i komponentfila. Til dømes er desse ekvivalente:
|
||||
|
||||
{{< code-toggle file=config/_default/hugo >}}
|
||||
[params]
|
||||
foo = 'bar'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
{{< code-toggle file=config/_default/params >}}
|
||||
foo = 'bar'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
### Rekursiv parsing
|
||||
|
||||
Hugo parsar `config`-mappa rekursivt, noko som tillèt deg å organisera filene i undermappper. Til dømes:
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── config/
|
||||
└── _default/
|
||||
├── navigation/
|
||||
│ ├── menus.de.toml
|
||||
│ └── menus.en.toml
|
||||
└── hugo.toml
|
||||
```
|
||||
|
||||
### Døme
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── config/
|
||||
├── _default/
|
||||
│ ├── hugo.toml
|
||||
│ ├── menus.en.toml
|
||||
│ ├── menus.de.toml
|
||||
│ └── params.toml
|
||||
├── production/
|
||||
│ ├── hugo.toml
|
||||
│ └── params.toml
|
||||
└── staging/
|
||||
├── hugo.toml
|
||||
└── params.toml
|
||||
```
|
||||
|
||||
Med utgangspunkt i strukturen ovanfor, når du køyrer `hugo --environment staging`, vil Hugo bruka alle innstillingar frå `config/_default` og fletta `staging` sine oppå desse.
|
||||
|
||||
La oss ta eit døme for å forstå dette betre. La oss seia at du brukar Google Analytics for nettstaden din. Dette krev at du spesifiserer ein [Google tag ID] i nettstadkonfigurasjonen din:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[services.googleAnalytics]
|
||||
ID = 'G-XXXXXXXXX'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Vurder no følgjande scenario:
|
||||
|
||||
1. Du vil ikkje lasta inn analysekodan når du køyrer `hugo server`.
|
||||
1. Du ønskjer å bruka forskjellige Google tag ID-ar for produksjons- og oppsettsmiljøa dine. Til dømes:
|
||||
- `G-PPPPPPPPP` for produksjon
|
||||
- `G-SSSSSSSSS` for oppsett
|
||||
|
||||
For å tilfredsstilla desse krava, kan du konfigurera nettstaden din slik:
|
||||
|
||||
1. `config/_default/hugo.toml`
|
||||
- Utelat `services.googleAnalytics`-seksjonen. Dette vil hindra lasting av analysekoden når du køyrer `hugo server`.
|
||||
- Som standard set Hugo `environment` til `development` når du køyrer `hugo server`. I fråvere av ei `config/development`-mappe, brukar Hugo `config/_default`-mappa.
|
||||
1. `config/production/hugo.toml`
|
||||
- Ta berre med denne seksjonen:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[services.googleAnalytics]
|
||||
ID = 'G-PPPPPPPPP'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
- Du treng ikkje inkludera andre parametrar i denne fila. Inkluder berre dei parametrane som er spesifikke for produksjonsmiljøet ditt. Hugo vil fletta desse parametrane med standardkonfigurasjonen.
|
||||
- Som standard set Hugo `environment` til `production` når du køyrer `hugo`. Analysekodan vil bruka `G-PPPPPPPPP` tag ID-en.
|
||||
|
||||
1. `config/staging/hugo.toml`
|
||||
|
||||
- Ta berre med denne seksjonen:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[services.googleAnalytics]
|
||||
ID = 'G-SSSSSSSSS'
|
||||
{{< /code-toggle >}}
|
||||
|
||||
- Du treng ikkje inkludera andre parametrar i denne fila. Inkluder berre dei parametrane som er spesifikke for oppsetsmiljøet ditt. Hugo vil fletta desse parametrane med standardkonfigurasjonen.
|
||||
- For å byggja oppsettsnettstaden din, køyr `hugo --environment staging`. Analysekodan vil bruka `G-SSSSSSSSS` tag ID-en.
|
||||
|
||||
## Fletting av konfigurasjonsinnstillingar
|
||||
|
||||
Hugo flettar konfigurasjonsinnstillingar frå tema og modular, og prioriterar prosjektet sine eigne innstillingar. Gitt denne forenkla prosjektstrukturen med to tema:
|
||||
|
||||
```text
|
||||
project/
|
||||
├── themes/
|
||||
│ ├── theme-a/
|
||||
│ │ └── hugo.toml
|
||||
│ └── theme-b/
|
||||
│ └── hugo.toml
|
||||
└── hugo.toml
|
||||
```
|
||||
|
||||
og denne prosjektnivåkonfigurasjonen:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
baseURL = 'https://example.org/'
|
||||
languageCode = 'en-us'
|
||||
title = 'My New Hugo Site'
|
||||
theme = ['theme-a','theme-b']
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Hugo flettar innstillingar i denne rekkjefølgja:
|
||||
|
||||
1. Prosjektkonfigurasjon (`hugo.toml` i prosjektrota)
|
||||
1. `theme-a` konfigurasjon
|
||||
1. `theme-b` konfigurasjon
|
||||
|
||||
Innstillinga `_merge` innanfor kvar toppnivåkonfigurasjonsnøkkel kontrollerar _kva_ innstillingar som vert fletta og _korleis_ dei vert fletta.
|
||||
|
||||
Verdien for `_merge` kan vera ein av:
|
||||
|
||||
none
|
||||
: Inga fletting.
|
||||
|
||||
shallow
|
||||
: Legg berre til verdiar for nye nøklar.
|
||||
|
||||
deep
|
||||
: Legg til verdiar for nye nøklar, flett eksisterande.
|
||||
|
||||
Merk at du ikkje treng vera så detaljert som i standardoppsettet nedanfor; ein `_merge`-verdi høgare oppe vil bli arva om den ikkje er sett.
|
||||
|
||||
{{< code-toggle file=hugo dataKey="config_helpers.mergeStrategy" skipHeader=true />}}
|
||||
|
||||
## Miljøvariablar
|
||||
|
||||
Du kan òg konfigurera innstillingar ved hjelp av miljøvariablar i operativsystemet:
|
||||
|
||||
```sh
|
||||
export HUGO_BASEURL=https://example.org/
|
||||
export HUGO_ENABLEGITINFO=true
|
||||
export HUGO_ENVIRONMENT=staging
|
||||
hugo
|
||||
```
|
||||
|
||||
Det ovanståande set konfigurasjonsvala [`baseURL`], [`enableGitInfo`], og [`environment`] og byggjer deretter nettstaden din.
|
||||
|
||||
> [!note]
|
||||
> Ei miljøvariabel har prioritet over verdiane sett i konfigurasjonsfila. Dette betyr at om du set ein konfigurasjonsverdi med både ei miljøvariabel og i konfigurasjonsfila, vil verdien i miljøvariabelen verta brukt.
|
||||
|
||||
Miljøvariablar forenklar konfigurasjonen for [CI/CD](g)-implementeringar som GitHub Pages, GitLab Pages og Netlify ved å tillata deg å setja verdiar direkte i dei respektive konfigurasjonane og arbeidsflytsfilene.
|
||||
|
||||
> [!note]
|
||||
> Miljøvariabelnamna må ha prefiks `HUGO_`.
|
||||
>
|
||||
> For å setja tilpassa nettstad-parametrar, set prefiks til namnet med `HUGO_PARAMS_`.
|
||||
|
||||
For snake_case-variabelnamn, vil ikkje standardprefikset `HUGO_` fungera. Hugo sluttar seg til skiljetegnet frå det første tegnet etter `HUGO`. Dette gjer det mogleg med variantar som `HUGOxPARAMSxAPI_KEY=abcdefgh` ved bruk av alle [tillatne skiljetegn].
|
||||
|
||||
I tillegg til å konfigurera standardinnstillingar, kan miljøvariablar brukast til å overstyra standardverdiar for visse interne innstillingar:
|
||||
|
||||
DART_SASS_BINARY
|
||||
: (`string`) Den absolute filsystempatha til Dart Sass-programmet. Som standard søkjer Hugo etter programmet i kvar av filbanane i miljøvariabelen `PATH`.
|
||||
|
||||
HUGO_FILE_LOG_FORMAT
|
||||
: (`string`) Ein formatstreng for filstien, linjenummeret og kolonnenummeret som vert vist når feil vert rapportert, eller når `Position`-metoden vert kalla frå ein shortcode eller ein Markdown-renderingskrok. Gyldige token er `:file`, `:line`, og `:col`. Standard er `:file::line::col`.
|
||||
|
||||
HUGO_MEMORYLIMIT
|
||||
: {{< new-in 0.123.0 />}}
|
||||
: (`int`) Den maksimale mengda systemminne, i gigabyte, som Hugo kan bruka under rendering av nettstaden din. Standard er 25% av totalt systemminne. Merk at `HUGO_MEMORYLIMIT` er ei "best effort"-innstilling. Ikkje forvent at Hugo skal byggja ein million sider med berre 1 GB minne. Du kan få meir informasjon om korleis dette oppfører seg under bygginga ved å byggja med `hugo --logLevel info` og sjå etter `dynacache`-etiketten.
|
||||
|
||||
HUGO_NUMWORKERMULTIPLIER
|
||||
: (`int`) Talet på arbeidarar som vert brukte i parallell behandling. Standard er talet på logiske CPUar.
|
||||
|
||||
## Gjeldande konfigurasjon
|
||||
|
||||
Vis den fullstendige nettstadkonfigurasjonen med:
|
||||
|
||||
```sh
|
||||
hugo config
|
||||
```
|
||||
|
||||
Vis ei spesifikk konfigurasjonsinnstilling med:
|
||||
|
||||
```sh
|
||||
hugo config | grep [key]
|
||||
```
|
||||
|
||||
Vis dei konfigurerte filmonteringane med:
|
||||
|
||||
```sh
|
||||
hugo config mounts
|
||||
```
|
||||
|
||||
[`baseURL`]: /configuration/all#baseurl
|
||||
[`enableGitInfo`]: /configuration/all#enablegitinfo
|
||||
[`environment`]: /configuration/all#environment
|
||||
[Google tag ID]: https://support.google.com/tagmanager/answer/12326985?hl=en
|
||||
[JSON]: https://datatracker.ietf.org/doc/html/rfc7159
|
||||
[tillatne skiljetegn]: https://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap08.html
|
||||
[TOML]: https://toml.io/en/latest
|
||||
[YAML]: https://yaml.org/spec/
|
209
content/nn/configuration/output-formats.md
Normal file
209
content/nn/configuration/output-formats.md
Normal file
@ -0,0 +1,209 @@
|
||||
---
|
||||
title: Konfigurer utdataformat!!
|
||||
linkTitle: Utdataformat
|
||||
description: Konfigurer utdataformat.
|
||||
categories: []
|
||||
keywords: []
|
||||
---
|
||||
|
||||
{{% glossary-term "output format" %}}
|
||||
|
||||
Du kan generera ei side i så mange format som du vil. Definer eit ubegrensa tal av utdataformat, så lenge kvart av dei resulterer i ei unik filsystembane.
|
||||
|
||||
Dette er standardkonfigurasjonen for utdataformat i tabellform:
|
||||
|
||||
{{< datatable
|
||||
"config"
|
||||
"outputFormats"
|
||||
"_key"
|
||||
"mediaType"
|
||||
"weight"
|
||||
"baseName"
|
||||
"isHTML"
|
||||
"isPlainText"
|
||||
"noUgly"
|
||||
"notAlternative"
|
||||
"path"
|
||||
"permalinkable"
|
||||
"protocol"
|
||||
"rel"
|
||||
"root"
|
||||
"ugly"
|
||||
>}}
|
||||
|
||||
## Standardkonfigurasjon
|
||||
|
||||
Det følgjande er standardkonfigurasjon som stemmer overeins med tabellen ovanfor:
|
||||
|
||||
{{< code-toggle config=outputFormats />}}
|
||||
|
||||
baseName
|
||||
: (`string`) Grunnnamnet på den publiserte fila. Standard er `index`.
|
||||
|
||||
isHTML
|
||||
: (`bool`) Om utdataformatet skal klassifiserast som HTML. Hugo brukar denne verdien for å avgjera når han skal oppretta alias-omdirigeringar og når han skal setja inn LiveReload-skriptet. Standard er `false`.
|
||||
|
||||
isPlainText
|
||||
: (`bool`) Om malar for dette utdataformatet skal tolkast med Go sitt [text/template]-pakke i staden for [html/template]-pakken. Standard er `false`.
|
||||
|
||||
mediaType
|
||||
: (`string`) [Mediatypen](g) til den publiserte fila. Denne må samsvara med ein av dei [konfigurerte mediatypane].
|
||||
|
||||
notAlternative
|
||||
: (`bool`) Om dette utdataformatet skal ekskluderast frå verdiane som blir returnert av [`AlternativeOutputFormats`]-metoden på eit `Page`-objekt. Standard er `false`.
|
||||
|
||||
noUgly
|
||||
: (`bool`) Om stygge URL-ar skal deaktiverast for dette utdataformatet når [`uglyURLs`] er aktivert i nettstadskonfigurasjonen din. Standard er `false`.
|
||||
|
||||
path
|
||||
: (`string`) Banestien til den publiserte fila, relativt til rota av publiseringsmappa. Viss ikkje spesifisert, vil fila bli publisert med innhaldsbana si.
|
||||
|
||||
permalinkable
|
||||
: (`bool`) Om rendreringsutdataformatet, heller enn hovudutdataformatet, skal returnerast når metodane [`Permalink`] og [`RelPermalink`] blir kalla på eit `Page`-objekt. Sjå . Aktivert som standard for `html`- og `amp`-utdataformata. Standard er `false`.
|
||||
|
||||
protocol
|
||||
: (`string`) Protokollen (skjemaet) for URL-en til dette utdataformatet. Til dømes `https://` eller `webcal://`. Standard er skjemaet for [`baseURL`]-parameteren i nettstadkonfigurasjonen din, typisk `https://`.
|
||||
|
||||
rel
|
||||
: (`string`) Viss oppgjeven, kan du tilordna denne verdien til `rel`-attributtet i `link`-element når du itererer over utdataformat i malane dine. Standard er `alternate`.
|
||||
|
||||
root
|
||||
: (`bool`) Om filer skal publiserast i rota av publiseringsmappa. Standard er `false`.
|
||||
|
||||
ugly
|
||||
: (`bool`) Om stygge URL-ar skal aktiverast for dette utdataformatet når `uglyURLs` er `false` i nettstadkonfigurasjonen din. Standard er `false`.
|
||||
|
||||
weight
|
||||
: (`int`) Når sett til ein ikkje-null verdi, brukar Hugo `weight` som det første kriteriet når utdataformat blir sortert, med fall tilbake til namnet på utdataformatet. Lettare element flyt til toppen, medan tyngre element synk til botnen. Hugo rendrer utdataformat sekvensielt basert på sorteringsrekkjefølga. Standard er `0`, med unntak for `html`-utdataformatet, som har ein standardvekt på `10`.
|
||||
|
||||
## Endre eit utdataformat
|
||||
|
||||
Du kan endra eit av standard utdataformata. Til dømes, for å prioritere `json`-rendring over `html`-rendring, når begge blir generert, juster [`weight`](#weight):
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[outputFormats.json]
|
||||
weight = 1
|
||||
[outputFormats.html]
|
||||
weight = 2
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Dømet over viser at når du endrar eit standard innhaldsformat, treng du berre definera eigenskapane som avvik frå standardverdiane.
|
||||
|
||||
## Opprett eit utdataformat
|
||||
|
||||
Du kan laga nye utdataformat etter behov. Til dømes kan du ønskja å laga eit utdataformat for å støtta Atom-feeds.
|
||||
|
||||
### Steg 1
|
||||
|
||||
Utdataformat krev ein spesifisert mediatype. Sidan Atom-feeds brukar `application/atom+xml`, som ikkje er ein av dei [standard mediatypane], må du oppretta den først.
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[mediaTypes.'application/atom+xml']
|
||||
suffixes = ['atom']
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Sjå [konfigurer mediatypar] for meir informasjon.
|
||||
|
||||
### Steg 2
|
||||
|
||||
Lag eit nytt utdataformat:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[outputFormats.atom]
|
||||
mediaType = 'application/atom+xml'
|
||||
noUgly = true
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Merk at vi brukar standardinnstillingane for alle andre eigenskapar for utdataformat.
|
||||
|
||||
### Steg 3
|
||||
|
||||
Spesifiser [types](g) for kva sider som dette utdataformatet skal rendrerast for:
|
||||
|
||||
{{< code-toggle file=hugo >}}
|
||||
[outputs]
|
||||
home = ['html', 'rss', 'atom']
|
||||
section = ['html', 'rss', 'atom']
|
||||
taxonomy = ['html', 'rss', 'atom']
|
||||
term = ['html', 'rss', 'atom']
|
||||
{{< /code-toggle >}}
|
||||
|
||||
Sjå [konfigurer utdata] for meir informasjon.
|
||||
|
||||
### Steg 4
|
||||
|
||||
Lag ein mal for å rendrere utdataformatet. Sidan Atom-feeds er lister, må du laga ein listemal. Sjå [mal-oppslags-rekkjefølgja] for å finna den rette malbana:
|
||||
|
||||
```text
|
||||
layouts/_default/list.atom.atom
|
||||
```
|
||||
|
||||
Vi overlet skriving av malkoden som ei øving til deg. Sikte mot eit resultat som liknar på den [innebygde RSS-malen].
|
||||
|
||||
## Liste utdataformat
|
||||
|
||||
For å få tilgang til utdataformat, har kvart `Page`-objekt to metodar: [`OutputFormats`] (for alle format, inkludert det gjeldande) og [`AlternativeOutputFormats`]. Bruk `AlternativeOutputFormats` for å laga ei lenke `rel`-liste innanfor `head`-elementet på nettstaden din, som vist nedanfor:
|
||||
|
||||
```go-html-template
|
||||
{{ range .AlternativeOutputFormats }}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
## Lenke til utdataformat
|
||||
|
||||
Som standard returnerer metodane [`Permalink`] og [`RelPermalink`] for eit `Page`-objekt URL-en til det [types](g), vanlegvis `html`. Denne oppførselen held seg konsistent uavhengig av kva mal som brukast.
|
||||
|
||||
Til dømes, i `single.json.json` vil du sjå:
|
||||
|
||||
```go-html-template
|
||||
{{ .RelPermalink }} → /that-page/
|
||||
{{ with .OutputFormats.Get "json" }}
|
||||
{{ .RelPermalink }} → /that-page/index.json
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
For å få desse metodane til å returnera URL-en til den _gjeldande_ malen sitt utdataformat, må du setja innstillinga [`permalinkable`] til `true` for det formatet.
|
||||
|
||||
Med `permalinkable` sett til true for `json` i den same `single.json.json`-malen:
|
||||
|
||||
```go-html-template
|
||||
{{ .RelPermalink }} → /that-page/index.json
|
||||
{{ with .OutputFormats.Get "html" }}
|
||||
{{ .RelPermalink }} → /that-page/
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
## Mal-oppslags-rekkjefølgje
|
||||
|
||||
Kvart utdataformat krev ein mal som samsvarar med [mal-oppslags-rekkjefølgja].
|
||||
|
||||
For høgaste spesifisitet i mal-oppslags-rekkjefølgja, inkluder sidetype, utdataformat og endelse i filnamnet:
|
||||
|
||||
```text
|
||||
[page kind].[output format].[suffix]
|
||||
```
|
||||
|
||||
Til dømes, for seksjonssider:
|
||||
|
||||
Utdataformat|Malbane
|
||||
:--|:--
|
||||
`html`|`layouts/_default/section.html.html`
|
||||
`json`|`layouts/_default/section.json.json`
|
||||
`rss`|`layouts/_default/section.rss.xml`
|
||||
|
||||
[`AlternativeOutputFormats`]: /methods/page/alternativeoutputformats/
|
||||
[`OutputFormats`]: /methods/page/outputformats/
|
||||
[`Permalink`]: /methods/page/permalink/
|
||||
[`RelPermalink`]: /methods/page/relpermalink/
|
||||
[`baseURL`]: /configuration/all/#baseurl
|
||||
[`permalinkable`]: #permalinkable
|
||||
[`uglyURLs`]: /configuration/ugly-urls/
|
||||
[konfigurer mediatypar]: /configuration/media-types/
|
||||
[konfigurer utdata]: /configuration/outputs/
|
||||
[konfigurerte mediatypane]: /configuration/media-types/
|
||||
[standard mediatypane]: /configuration/media-types/
|
||||
[innebygde RSS-malen]: {{% eturl rss %}}
|
||||
[html/template]: https://pkg.go.dev/html/template
|
||||
[mal-oppslags-rekkjefølgja]: /templates/lookup-order/
|
||||
[text/template]: https://pkg.go.dev/text/template
|
328
hugo.toml
328
hugo.toml
@ -1,173 +1,193 @@
|
||||
baseURL = "https://gohugo.io/"
|
||||
defaultContentLanguage = "en"
|
||||
enableEmoji = true
|
||||
pluralizeListTitles = false
|
||||
timeZone = "Europe/Oslo"
|
||||
title = "Hugo"
|
||||
baseURL = "https://gohugo.io/"
|
||||
defaultContentLanguage = "en"
|
||||
enableEmoji = true
|
||||
pluralizeListTitles = false
|
||||
timeZone = "Europe/Oslo"
|
||||
title = "Hugo"
|
||||
defaultContentVersion = "v2.0.0"
|
||||
defaultContentVersionInSubDir = false
|
||||
|
||||
# We do redirects via Netlify's _redirects file, generated by Hugo (see "outputs" below).
|
||||
disableAliases = true
|
||||
|
||||
[build]
|
||||
[build.buildStats]
|
||||
disableIDs = true
|
||||
enable = true
|
||||
[[build.cachebusters]]
|
||||
source = "assets/notwatching/hugo_stats\\.json"
|
||||
target = "css"
|
||||
[[build.cachebusters]]
|
||||
source = "(postcss|tailwind)\\.config\\.js"
|
||||
target = "css"
|
||||
|
||||
[caches]
|
||||
[caches.images]
|
||||
dir = ":cacheDir/images"
|
||||
maxAge = "1440h"
|
||||
[caches.getresource]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = "1h"
|
||||
|
||||
[cascade]
|
||||
[cascade.params]
|
||||
hide_in_this_section = true
|
||||
show_publish_date = true
|
||||
[cascade.target]
|
||||
kind = 'page'
|
||||
path = '{/news/**}'
|
||||
|
||||
[frontmatter]
|
||||
date = ['date'] # do not add publishdate; it will affect page sorting
|
||||
expiryDate = ['expirydate']
|
||||
lastmod = [':git', 'lastmod', 'publishdate', 'date']
|
||||
publishDate = ['publishdate', 'date']
|
||||
|
||||
[languages]
|
||||
[languages.en]
|
||||
languageCode = "en-US"
|
||||
languageName = "English"
|
||||
weight = 1
|
||||
|
||||
[markup]
|
||||
[markup.goldmark]
|
||||
[markup.goldmark.extensions]
|
||||
[markup.goldmark.extensions.typographer]
|
||||
disable = false
|
||||
[markup.goldmark.extensions.passthrough]
|
||||
enable = true
|
||||
[markup.goldmark.extensions.passthrough.delimiters]
|
||||
block = [['\[', '\]'], ['$$', '$$']]
|
||||
inline = [['\(', '\)']]
|
||||
[markup.goldmark.parser]
|
||||
autoDefinitionTermID = true
|
||||
[markup.goldmark.parser.attribute]
|
||||
block = true
|
||||
[markup.highlight]
|
||||
lineNumbersInTable = false
|
||||
noClasses = false
|
||||
style = 'solarized-dark'
|
||||
wrapperClass = 'highlight not-prose'
|
||||
|
||||
[mediaTypes]
|
||||
[mediaTypes."text/netlify"]
|
||||
delimiter = ""
|
||||
|
||||
[module]
|
||||
[module.hugoVersion]
|
||||
min = "0.144.0"
|
||||
[[module.mounts]]
|
||||
source = "assets"
|
||||
target = "assets"
|
||||
[[module.mounts]]
|
||||
lang = 'en'
|
||||
source = 'content/en'
|
||||
target = 'content'
|
||||
[[module.mounts]]
|
||||
disableWatch = true
|
||||
source = "hugo_stats.json"
|
||||
target = "assets/notwatching/hugo_stats.json"
|
||||
|
||||
[outputFormats]
|
||||
[outputFormats.redir]
|
||||
baseName = "_redirects"
|
||||
isPlainText = true
|
||||
mediatype = "text/netlify"
|
||||
[outputFormats.headers]
|
||||
baseName = "_headers"
|
||||
isPlainText = true
|
||||
mediatype = "text/netlify"
|
||||
notAlternative = true
|
||||
|
||||
[outputs]
|
||||
home = ["html", "rss", "redir", "headers"]
|
||||
page = ["html"]
|
||||
section = ["html"]
|
||||
taxonomy = ["html"]
|
||||
term = ["html"]
|
||||
disableKinds = ["rss"]
|
||||
|
||||
[params]
|
||||
description = "The world’s fastest framework for building websites"
|
||||
ghrepo = "https://github.com/gohugoio/hugoDocs/"
|
||||
[params.render_hooks.link]
|
||||
errorLevel = 'warning' # ignore (default), warning, or error (fails the build)
|
||||
[params.social.mastodon]
|
||||
url = "https://fosstodon.org/@gohugoio"
|
||||
description = "The world’s fastest framework for building websites"
|
||||
ghrepo = "https://github.com/gohugoio/hugoDocs/"
|
||||
[params.render_hooks.link]
|
||||
errorLevel = 'warning'
|
||||
[params.social.mastodon]
|
||||
url = "https://fosstodon.org/@gohugoio"
|
||||
|
||||
[languages]
|
||||
[languages.en]
|
||||
languageCode = "en-US"
|
||||
languageName = "English"
|
||||
weight = 1
|
||||
[languages.nn]
|
||||
languageCode = "nn"
|
||||
languageName = "Nynorsk"
|
||||
weight = 2
|
||||
|
||||
[versions]
|
||||
[versions."v1.0.0"]
|
||||
[versions."v2.0.0"]
|
||||
|
||||
[build]
|
||||
[build.buildStats]
|
||||
disableIDs = true
|
||||
enable = true
|
||||
[[build.cachebusters]]
|
||||
source = "assets/notwatching/hugo_stats\\.json"
|
||||
target = "css"
|
||||
[[build.cachebusters]]
|
||||
source = "(postcss|tailwind)\\.config\\.js"
|
||||
target = "css"
|
||||
|
||||
[caches]
|
||||
[caches.images]
|
||||
dir = ":cacheDir/images"
|
||||
maxAge = "1440h"
|
||||
[caches.getresource]
|
||||
dir = ':cacheDir/:project'
|
||||
maxAge = "1h"
|
||||
|
||||
[[cascade]]
|
||||
[cascade.params]
|
||||
hide_in_this_section = true
|
||||
show_publish_date = true
|
||||
[cascade.target]
|
||||
kind = 'page'
|
||||
path = '{/news/**}'
|
||||
|
||||
[frontmatter]
|
||||
date = ['date'] # do not add publishdate; it will affect page sorting
|
||||
expiryDate = ['expirydate']
|
||||
lastmod = [':git', 'lastmod', 'publishdate', 'date']
|
||||
publishDate = ['publishdate', 'date']
|
||||
|
||||
[markup]
|
||||
[markup.goldmark]
|
||||
[markup.goldmark.extensions]
|
||||
[markup.goldmark.extensions.typographer]
|
||||
disable = false
|
||||
[markup.goldmark.extensions.passthrough]
|
||||
enable = true
|
||||
[markup.goldmark.extensions.passthrough.delimiters]
|
||||
block = [['\[', '\]'], ['$$', '$$']]
|
||||
inline = [['\(', '\)']]
|
||||
[markup.goldmark.parser]
|
||||
autoDefinitionTermID = true
|
||||
[markup.goldmark.parser.attribute]
|
||||
block = true
|
||||
[markup.highlight]
|
||||
lineNumbersInTable = false
|
||||
noClasses = false
|
||||
style = 'solarized-dark'
|
||||
wrapperClass = 'highlight not-prose'
|
||||
|
||||
[mediaTypes]
|
||||
[mediaTypes."text/netlify"]
|
||||
delimiter = ""
|
||||
|
||||
[module]
|
||||
[module.hugoVersion]
|
||||
min = "0.144.0"
|
||||
[[module.mounts]]
|
||||
source = "assets"
|
||||
target = "assets"
|
||||
[[module.mounts]]
|
||||
source = 'content/en'
|
||||
target = 'content'
|
||||
[module.mounts.dimensions]
|
||||
languages = ["**"]
|
||||
versions = ["**"]
|
||||
[[module.mounts]]
|
||||
source = 'content/nn'
|
||||
target = 'content'
|
||||
[module.mounts.dimensions]
|
||||
languages = ["nn"]
|
||||
versions = ["**"]
|
||||
[[module.mounts]]
|
||||
disableWatch = true
|
||||
source = "hugo_stats.json"
|
||||
target = "assets/notwatching/hugo_stats.json"
|
||||
|
||||
[outputFormats]
|
||||
[outputFormats.redir]
|
||||
baseName = "_redirects"
|
||||
isPlainText = true
|
||||
mediatype = "text/netlify"
|
||||
[outputFormats.headers]
|
||||
baseName = "_headers"
|
||||
isPlainText = true
|
||||
mediatype = "text/netlify"
|
||||
notAlternative = true
|
||||
|
||||
[outputs]
|
||||
home = ["html", "rss", "redir", "headers"]
|
||||
page = ["html"]
|
||||
section = ["html"]
|
||||
taxonomy = ["html"]
|
||||
term = ["html"]
|
||||
|
||||
[related]
|
||||
includeNewer = true
|
||||
threshold = 80
|
||||
toLower = true
|
||||
[[related.indices]]
|
||||
name = 'keywords'
|
||||
weight = 1
|
||||
includeNewer = true
|
||||
threshold = 80
|
||||
toLower = true
|
||||
[[related.indices]]
|
||||
name = 'keywords'
|
||||
weight = 1
|
||||
|
||||
[security]
|
||||
[security.funcs]
|
||||
getenv = ['^HUGO_', '^REPOSITORY_URL$', '^BRANCH$']
|
||||
[security.funcs]
|
||||
getenv = ['^HUGO_', '^REPOSITORY_URL$', '^BRANCH$']
|
||||
|
||||
[server]
|
||||
[[server.headers]]
|
||||
for = "/*"
|
||||
[server.headers.values]
|
||||
X-Frame-Options = "DENY"
|
||||
X-XSS-Protection = "1; mode=block"
|
||||
X-Content-Type-Options = "nosniff"
|
||||
Referrer-Policy = "no-referrer"
|
||||
[[server.headers]]
|
||||
for = "/**.{css,js}"
|
||||
[[server.headers]]
|
||||
for = "/*"
|
||||
[server.headers.values]
|
||||
X-Frame-Options = "DENY"
|
||||
X-XSS-Protection = "1; mode=block"
|
||||
X-Content-Type-Options = "nosniff"
|
||||
Referrer-Policy = "no-referrer"
|
||||
[[server.headers]]
|
||||
for = "/**.{css,js}"
|
||||
|
||||
[services]
|
||||
[services.googleAnalytics]
|
||||
ID = 'G-MBZGKNMDWC'
|
||||
[services.googleAnalytics]
|
||||
ID = 'G-MBZGKNMDWC'
|
||||
|
||||
[taxonomies]
|
||||
category = 'categories'
|
||||
category = 'categories'
|
||||
|
||||
######## GLOBAL ITEMS TO BE SHARED WITH THE HUGO SITES ########
|
||||
[menus]
|
||||
[[menus.global]]
|
||||
identifier = 'news'
|
||||
name = 'News'
|
||||
pageRef = '/news/'
|
||||
weight = 1
|
||||
[[menus.global]]
|
||||
identifier = 'docs'
|
||||
name = 'Docs'
|
||||
url = '/documentation/'
|
||||
weight = 5
|
||||
[[menus.global]]
|
||||
identifier = 'themes'
|
||||
name = 'Themes'
|
||||
url = 'https://themes.gohugo.io/'
|
||||
weight = 10
|
||||
[[menus.global]]
|
||||
identifier = 'community'
|
||||
name = 'Community'
|
||||
post = 'external'
|
||||
url = 'https://discourse.gohugo.io/'
|
||||
weight = 150
|
||||
[[menus.global]]
|
||||
identifier = 'github'
|
||||
name = 'GitHub'
|
||||
post = 'external'
|
||||
url = 'https://github.com/gohugoio/hugo'
|
||||
weight = 200
|
||||
[[menus.global]]
|
||||
identifier = 'news'
|
||||
name = 'News'
|
||||
pageRef = '/news/'
|
||||
weight = 1
|
||||
[[menus.global]]
|
||||
identifier = 'docs'
|
||||
name = 'Docs'
|
||||
url = '/documentation/'
|
||||
weight = 5
|
||||
[[menus.global]]
|
||||
identifier = 'themes'
|
||||
name = 'Themes'
|
||||
url = 'https://themes.gohugo.io/'
|
||||
weight = 10
|
||||
[[menus.global]]
|
||||
identifier = 'community'
|
||||
name = 'Community'
|
||||
post = 'external'
|
||||
url = 'https://discourse.gohugo.io/'
|
||||
weight = 150
|
||||
[[menus.global]]
|
||||
identifier = 'github'
|
||||
name = 'GitHub'
|
||||
post = 'external'
|
||||
url = 'https://github.com/gohugoio/hugo'
|
||||
weight = 200
|
||||
|
@ -84,7 +84,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
{{- /* Verify minimum required version. */}}
|
||||
{{- $minHugoVersion := "0.141.0" }}
|
||||
{{- if lt hugo.Version $minHugoVersion }}
|
||||
{{- errorf "The %q render hook requires Hugo v%s or later." $renderHookName $minHugoVersion }}
|
||||
{{- warnf "The %q render hook requires Hugo v%s or later." $renderHookName $minHugoVersion }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Error level when unable to resolve destination: ignore, warning, or error. */}}
|
||||
@ -95,7 +95,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
|
||||
{{- /* Validate error level. */}}
|
||||
{{- if not (in (slice "ignore" "warning" "error") $errorLevel) }}
|
||||
{{- errorf "The %q render hook is misconfigured. The errorLevel %q is invalid. Please check your site configuration." $renderHookName $errorLevel }}
|
||||
{{- warnf "The %q render hook is misconfigured. The errorLevel %q is invalid. Please check your site configuration." $renderHookName $errorLevel }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Determine content path for warning and error messages. */}}
|
||||
@ -157,7 +157,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
{{- $attrs = merge $attrs (dict "class" "broken") }}
|
||||
{{- end }}
|
||||
{{- else if eq $errorLevel "error" }}
|
||||
{{- errorf $msg }}
|
||||
{{- warnf $msg }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
@ -179,7 +179,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
{{- $attrs = merge $attrs (dict "class" "broken") }}
|
||||
{{- end }}
|
||||
{{- else if eq $errorLevel "error" }}
|
||||
{{- errorf $msg }}
|
||||
{{- warnf $msg }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@ -222,7 +222,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
{{- if eq $errorLevel "warning" }}
|
||||
{{- warnf $msg }}
|
||||
{{- else if eq $errorLevel "error" }}
|
||||
{{- errorf $msg }}
|
||||
{{- warnf $msg }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
@ -242,7 +242,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
{{- if eq $errorLevel "warning" }}
|
||||
{{- warnf $msg }}
|
||||
{{- else if eq $errorLevel "error" }}
|
||||
{{- errorf $msg }}
|
||||
{{- warnf $msg }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@ -281,7 +281,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
{{- /* Verify that the glossary page exists. */}}
|
||||
{{- $glossaryPage := site.GetPage $glossaryPath }}
|
||||
{{- if not $glossaryPage }}
|
||||
{{- errorf "The %q render hook was unable to find %s: see %s" $renderHookName $glossaryPath $contentPath }}
|
||||
{{- warnf "The %q render hook was unable to find %s: see %s" $renderHookName $glossaryPath $contentPath }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* There's a better way to handle this, but it works for now. */}}
|
||||
@ -307,7 +307,7 @@ either of these shortcodes in conjunction with this render hook.
|
||||
{{- end }}
|
||||
|
||||
{{- if not $termActual }}
|
||||
{{- errorf "The %q render hook was unable to find a glossary page for either the singular or plural form of the term %q: see %s" $renderHookName $termGiven $contentPath }}
|
||||
{{- warnf "The %q render hook was unable to find a glossary page for either the singular or plural form of the term %q: see %s" $renderHookName $termGiven $contentPath }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Create the href attribute. */}}
|
||||
|
72
layouts/_partials/dimensionselector.html
Normal file
72
layouts/_partials/dimensionselector.html
Normal file
@ -0,0 +1,72 @@
|
||||
{{ $pages := .page.Rotate .dimension }}
|
||||
{{ warnf "%s got %d" .dimension (len $pages) }}
|
||||
{{ $selected := .page }}
|
||||
<div class="mt-2">
|
||||
<div
|
||||
x-data="{
|
||||
open: false,
|
||||
toggle() {
|
||||
if (this.open) {
|
||||
return this.close()
|
||||
}
|
||||
|
||||
this.$refs.button.focus()
|
||||
|
||||
this.open = true
|
||||
},
|
||||
close(focusAfter) {
|
||||
if (! this.open) return
|
||||
|
||||
this.open = false
|
||||
|
||||
focusAfter && focusAfter.focus()
|
||||
}
|
||||
}"
|
||||
x-on:keydown.escape.prevent.stop="close($refs.button)"
|
||||
x-on:focusin.window="! $refs.panel.contains($event.target) && close()"
|
||||
x-id="['dropdown-button']"
|
||||
class="relative">
|
||||
<button
|
||||
x-ref="button"
|
||||
x-on:click="toggle()"
|
||||
:aria-expanded="open"
|
||||
:aria-controls="$id('dropdown-button')"
|
||||
type="button"
|
||||
class="relative flex items-center whitespace-nowrap justify-center gap-2 py-2 rounded-lg shadow-sm bg-white hover:bg-gray-50 text-gray-800 border border-gray-200 hover:border-gray-200 px-4">
|
||||
<span>
|
||||
{{/* Dimension is one of language, version or role. */}}
|
||||
{{ with $selected.Site.Dimension $.dimension }}{{ .Name }}{{ end }}
|
||||
</span>
|
||||
<!-- Heroicon: micro chevron-down -->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 16 16"
|
||||
fill="currentColor"
|
||||
class="size-4">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z"
|
||||
clip-rule="evenodd" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div
|
||||
x-ref="panel"
|
||||
x-show="open"
|
||||
x-transition.origin.top.left
|
||||
x-on:click.outside="close($refs.button)"
|
||||
:id="$id('dropdown-button')"
|
||||
x-cloak
|
||||
class="absolute left-0 min-w-48 rounded-lg shadow-sm mt-2 z-10 origin-top-left bg-white p-1.5 outline-none border border-gray-200">
|
||||
{{ range $pages }}
|
||||
<a
|
||||
href="{{ .RelPermalink }}"
|
||||
class="px-2 lg:py-1.5 py-2 w-full flex items-center rounded-md transition-colors text-left text-gray-800 hover:bg-gray-50 focus-visible:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed">
|
||||
{{/* Dimension is one of language, version or role. */}}
|
||||
{{ with .Site.Dimension $.dimension }}{{ .Name }}{{ end }}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -41,9 +41,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="-my-5 pl-2 grow-0">
|
||||
{{/* Search. */}}
|
||||
{{ partial "layouts/search/input.html" . }}
|
||||
<div class="-my-5 pl-2 grow-0 flex space-x-2">
|
||||
{{ partial "dimensionselector.html" (dict "title" "Versions" "dimension" "version" "page" . ) }}
|
||||
{{ partial "dimensionselector.html" (dict "title" "Languages" "dimension" "language" "page" . ) }}
|
||||
|
||||
</div>
|
||||
<div
|
||||
class="relative ml-0 md:ml-8 flex content-center basis-0 justify-end gap-0 sm:gap-1 xl:grow-1">
|
||||
@ -57,8 +58,7 @@
|
||||
class="hidden sm:block ml-2 sm:ml-6 h-6 fill-slate-400 group-hover:fill-slate-500 dark:group-hover:fill-slate-300">
|
||||
{{ partial "layouts/header/githubstars.html" . }}
|
||||
</div>
|
||||
<div
|
||||
class="hidden sm:block ml-2 sm:ml-6 h-6">
|
||||
<div class="hidden sm:block ml-2 sm:ml-6 h-6">
|
||||
{{ partial "layouts/header/mastodon.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -35,6 +35,7 @@
|
||||
<body
|
||||
class="flex flex-col min-h-full bg-white dark:bg-blue-950 kind-{{ .Kind }}">
|
||||
{{ partial "layouts/hooks/body-start.html" . }}
|
||||
|
||||
{{/* Layout. */}}
|
||||
{{ block "header" . }}
|
||||
{{ partial "layouts/header/header.html" . }}
|
||||
|
@ -18,7 +18,7 @@
|
||||
class="w-64 aspect-3/1 mx-auto mb-8">
|
||||
<h1
|
||||
class="text-4xl font-bold tracking-tight text-balance text-gray-900 dark:text-gray-300 sm:text-6xl">
|
||||
The world’s fastest framework for building websites
|
||||
{{ .Title }}
|
||||
</h1>
|
||||
<div
|
||||
class="mt-8 text-lg font-medium text-pretty text-gray-800 dark:text-gray-400 sm:text-xl/8">
|
||||
|
Loading…
x
Reference in New Issue
Block a user