Secciones principales

El parámetro mainSections se utiliza para filtrar páginas; el valor predeterminado es ["posts", "docs"].

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

Asunto frontal

Front Matter es el lugar donde colocamos los metadatos y parámetros de la página, como el título, la fecha, etc.

Formatos

Hugo admite tres formatos de portada: YAML, TOML y JSON.

  • TOML: identificado abriendo y cerrando +++.
  • YAML: identificado abriendo y cerrando ---.
  • JSON: un único objeto JSON rodeado por { y }, seguido de una nueva línea.

Tomemos TOML como ejemplo:

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

Véase también Parámetros de página y Materia frontal de Hugo.

Tipos de contenido

Es posible que desee utilizar el diseño docs en otras secciones en lugar de /docs, como /notes. Es fácil hacerlo configurando type = "docs" en la portada.

Arquetipos

También podemos crear un arquetipo para notes, dejemos que Hugo se encargue del type.

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

Y el anexo type = "docs" en la portada de archetypes/notes.md. Ahora, hugo new notes/blah-blah-blah copiará el contenido de archetypes/notes.md a tus nuevas notas.

De manera similar, también puedes personalizar los arquetipos para posts, docs, etc.

Escribe nuevos artículos

Supongamos que el idioma predeterminado es en.

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

El comando anterior crea una nueva publicación escrita en inglés. Del mismo modo, podemos crear un post escrito en chino simplificado:

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

Recuerde que las publicaciones creadas generalmente se encuentran en estado de borrador. Deberá especificar el parámetro -D del comando hugo server para obtener una vista previa. De manera similar, debe cambiar el parámetro draft a false o eliminar el parámetro draft si desea publicar el artículo.

Orden de selección de resúmenes

  1. Si description no está vacío, entonces se usará; para usar resúmenes todo el tiempo, debe configurar post.excerpt como cadena vacía explícitamente.
  2. División manual mediante <!–more–>.
  3. Si summary en la portada no está vacío, entonces se seleccionará summary.
  4. El texto del contenido será cortado por post.excerptMaxLength y formateado en texto plano o HTML cuando 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.

Orden de selección de imágenes destacadas

  1. Se prefiere el images en el tema inicial.
  2. Recursos de imágenes de página que coincidan con el patrón *feature*. Como posts/my-page/feature.png, posts/my-page/featured-sample.jpg.

La imagen destacada no aparece encima del contenido de forma predeterminada; deberá activar esta función mediante el siguiente parámetro.

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}

Orden de selección de miniaturas

  1. Se prefiere el images en el tema inicial.
  2. Recursos de imágenes de página que coincidan con los patrones del nombre de archivo: *feature*, *cover* y *thumbnail*. Como posts/my-page/feature.png, posts/my-page/thumnail.jpg.

Los recursos de imágenes de la página cambiarán de tamaño a varias versiones más pequeñas para adaptarse a los dispositivos de los usuarios para ahorrar ancho de banda.

Fijar publicaciones

Puede fijar publicaciones en la página de inicio configurando pinned como true en la portada.

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

Si hay varias publicaciones fijadas, se ordenan por pinnedWeight en orden descendente.

1pinnedPost = false # Disable pinned posts globally.
2pinnedPostCount = 2 # The number of pinned posts shown on home page.

Carrusel

Mostrando publicaciones en carrusel.

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

Autores

HBS apoya la taxonomía de los autores. En primer lugar, deberá habilitarlo estableciendo la siguiente configuración.

config.toml

1[taxonomies]
2  author = 'authors'

config.yaml

1taxonomies:
2  author: authors

config.json

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

Y luego define el authors en tus publicaciones.

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

Ahora, los autores estarán presentes en las meta taxonomías y en la barra lateral de la publicación.

Finalmente, es posible que necesitemos presentar al autor con más detalle. Tome Foo como ejemplo, simplemente cree una página con el siguiente contenido y guárdela como /content/authors/foo/index.md.

1---
2title: Razon Yang
3description: Gopher, PHPer, Full Stack Engineer.
4social:
5  github: razonyang
6  twitter: razonyang
7---
  • title: el nombre para mostrar del autor.
  • description: La introducción.
  • social: Enlaces sociales.

La imagen del autor debe colocarse en la misma carpeta con el patrón avatar*, como /content/authors/foo/avatar.png. Si no hay avatar, social.email se utilizará para generar el avatar de Gravatar.

A continuación