Hoofdsecties

De parameter mainSections wordt gebruikt om pagina’s te filteren; standaard ["posts", "docs"].

1mainSections = ["blog", "posts", "docs", "notes"]

Front Matter

Front Matter is de plaats waar we paginametadata en -parameters opslaan, zoals titel, datum, enzovoort.

Formaten

Hugo ondersteunt drie front matter-formaten: YAML, TOML en JSON.

  • TOML: geïdentificeerd door openende en sluitende +++.
  • YAML: geïdentificeerd door openende en sluitende ---.
  • JSON: een enkel JSON-object omsloten door { en }, gevolgd door een nieuwe regel.

Laten we TOML als voorbeeld nemen:

1+++
2title = 'Hello world!'
3+++

Zie ook Paginaparameters en Hugo Front Matter.

Inhoudstypen

Mogelijk wil je de docs-layout gebruiken in andere secties dan /docs, zoals /notes. Dit is eenvoudig door type = "docs" in te stellen in de front matter.

Archetypes

We kunnen ook een archetype aanmaken voor notes en Hugo de type laten regelen.

1$ cp themes/hugo-theme-bootstrap/archetypes/default.md archetypes/notes.md

Voeg vervolgens type = "docs" toe aan de front matter van archetypes/notes.md. Nu kopieert hugo new notes/blah-blah-blah de inhoud van archetypes/notes.md naar je nieuwe notitie.

Op dezelfde manier kun je ook de archetypes aanpassen voor posts, docs, enzovoort.

Nieuwe Artikelen Schrijven

Stel dat de standaardtaal en is.

1$ hugo new posts/new-post/index.md

Het bovenstaande commando maakt een nieuw bericht aan in het Engels. Op dezelfde manier kunnen we een bericht aanmaken in vereenvoudigd Chinees:

1$ hugo new posts/new-post/index.zh-cn.md

Houd er rekening mee dat nieuw aangemaakte berichten over het algemeen in conceptstatus staan. Je moet de parameter -D opgeven bij hugo server om ze te bekijken. Je moet draft ook wijzigen naar false of de draft-parameter verwijderen als je het artikel wilt publiceren.

Volgorde van Samenvattingsselectie

  1. Als de description niet leeg is, wordt deze gebruikt. Stel post.excerpt expliciet in op een lege string om altijd samenvattingen te gebruiken.
  2. Handmatige splitsing via <!–more–>.
  3. Als summary in de front matter niet leeg is, wordt summary geselecteerd.
  4. De tekst van de inhoud wordt afgekapt op post.excerptMaxLength en opgemaakt als platte tekst of HTML bij post.plainifyExcerpt = true.
1[post]
2  # excerptMaxLength = 120
3  # copyright = false # Whether to display copyright section on each post.
4  # plainifyExcerpt = false # Format excerpt in HTML if false.

Volgorde van Selectie voor Uitgelichte Afbeeldingen

  1. De images in de front matter hebben voorrang.
  2. Paginaafbeeldingsbronnen die overeenkomen met het patroon *feature*, zoals posts/my-page/feature.png, posts/my-page/featured-sample.jpg.

De uitgelichte afbeelding wordt standaard niet boven de inhoud weergegeven. Schakel deze functie in via de volgende parameter.

config/_default/params.toml

1[post]
2  featuredImage = true

config/_default/params.yaml

1post:
2  featuredImage: true

config/_default/params.json

1{
2   "post": {
3      "featuredImage": true
4   }
5}

Volgorde van Selectie voor Miniaturen

  1. De images in de front matter hebben voorrang.
  2. Paginaafbeeldingsbronnen die overeenkomen met de bestandsnaampatronen: *feature*, *cover* en *thumbnail*, zoals posts/my-page/feature.png, posts/my-page/thumnail.jpg.

De paginaafbeeldingsbronnen worden verkleind tot meerdere kleinere versies voor de apparaten van gebruikers om bandbreedte te besparen.

Berichten Vastpinnen

Je kunt berichten op de startpagina vastpinnen door pinned in te stellen op true in de front matter.

1+++
2title = "Pinned Post"
3pinned = true
4pinnedWeight = 100
5+++

Als er meerdere vastgepinde berichten zijn, worden ze gesorteerd op pinnedWeight in aflopende volgorde.

1pinnedPost = false # Vastgepinde berichten globaal uitschakelen.
2pinnedPostCount = 2 # Het aantal vastgepinde berichten op de startpagina.

Carrousel

Berichten weergeven op carrousel.

1+++
2carousel = true
3+++

Auteurs

HBS ondersteunt de auteurstaxonomie. Schakel deze eerst in via de volgende configuratie.

config.toml

1[taxonomies]
2  author = 'authors'

config.yaml

1taxonomies:
2  author: authors

config.json

1{
2   "taxonomies": {
3      "author": "authors"
4   }
5}

Definieer vervolgens de authors in je berichten.

1+++
2authors = [
3  "Foo",
4  "Bar"
5]
6+++

Nu worden de auteurs weergegeven in de berichtenmeta en de zijbalktaxonomieën.

Tot slot kun je de auteur gedetailleerder introduceren. Neem Foo als voorbeeld: maak een pagina aan met de volgende inhoud en sla deze op als /content/authors/foo/index.md.

1---
2title: Razon Yang
3description: Gopher, PHPer, Full Stack Engineer.
4social:
5  github: razonyang
6  twitter: razonyang
7---
  • title: De weergavenaam van de auteur.
  • description: De introductie.
  • social: Sociale links.

De auteursafbeelding moet in dezelfde map worden geplaatst met het patroon avatar*, zoals /content/authors/foo/avatar.png. Als er geen avatar is, wordt social.email gebruikt om een Gravatar-avatar te genereren.

Volgende Stappen