7.4 KiB
title | linkTitle | description | categories | keywords |
---|---|---|---|---|
Konfigurer utdataformat!! | Utdataformat | Konfigurer utdataformat. |
{{% 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 erindex
. - 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 erfalse
. - isPlainText
- (
bool
) Om malar for dette utdataformatet skal tolkast med Go sitt [text/template]-pakke i staden for [html/template]-pakken. Standard erfalse
. - mediaType
- (
string
) Mediatypen 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 avAlternativeOutputFormats
-metoden på eitPage
-objekt. Standard erfalse
. - noUgly
- (
bool
) Om stygge URL-ar skal deaktiverast for dette utdataformatet nåruglyURLs
er aktivert i nettstadskonfigurasjonen din. Standard erfalse
. - 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 metodanePermalink
ogRelPermalink
blir kalla på eitPage
-objekt. Sjå . Aktivert som standard forhtml
- ogamp
-utdataformata. Standard erfalse
. - protocol
- (
string
) Protokollen (skjemaet) for URL-en til dette utdataformatet. Til dømeshttps://
ellerwebcal://
. Standard er skjemaet forbaseURL
-parameteren i nettstadkonfigurasjonen din, typiskhttps://
. - rel
- (
string
) Viss oppgjeven, kan du tilordna denne verdien tilrel
-attributtet ilink
-element når du itererer over utdataformat i malane dine. Standard eralternate
. - root
- (
bool
) Om filer skal publiserast i rota av publiseringsmappa. Standard erfalse
. - ugly
- (
bool
) Om stygge URL-ar skal aktiverast for dette utdataformatet nåruglyURLs
erfalse
i nettstadkonfigurasjonen din. Standard erfalse
. - weight
- (
int
) Når sett til ein ikkje-null verdi, brukar Hugoweight
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 er0
, med unntak forhtml
-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
:
{{< 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 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:
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:
{{ 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, vanlegvis html
. Denne oppførselen held seg konsistent uavhengig av kva mal som brukast.
Til dømes, i single.json.json
vil du sjå:
{{ .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:
{{ .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:
[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 |
[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