2.3 Contenido
La estructura del directorio content/
puede ser arbitraria. Una estructura común es que hay algunas páginas estáticas bajo la raíz de content/
, y un subdirectorio post/
que contiene publicaciones de blog:
├── _index.md
├── about.md
├── vitae.md
├── post/
│ ├── 2017-01-01-foo.md
│ ├── 2017-01-02-bar.md
│ └── ...
└── ...
2.3.1 Metadatos YAML
Cada página debe comenzar con los metadatos YAML que especifican información como el título, la fecha, el autor, las categorías, las etiquetas, etc. Según el tema específico de Hugo y las plantillas que use, algunos de estos campos pueden ser opcionales.
Entre todos los campos de YAML, queremos llamar su atención sobre estos:
draft
: Puede marcar un documento como borrador configurandodraft: true
en sus metadatos YAML. Los borradores de mensajes no se mostrarán si el sitio se compila medianteblogdown::build_site()
oblogdown::hugo_build ()
, pero se presentarán en el modo de vista previa local (consulte la sección D.3)publishdate
: Puede especificar una fecha futura para publicar un post. Al igual que en las publicaciones preliminares, las publicaciones futuras solo se presentan en el modo de vista previa local.weight
: Este campo puede tomar un valor numérico para indicarle a Hugo el orden de las páginas al ordenarlas ; por ejemplo, cuando genera una lista de todas las páginas debajo de un directorio y dos publicaciones tienen la misma fecha, puede asignar diferentes ponderaciones para obtener el orden deseado en la lista.slug
: Una cadena de caracteres como la cola de la URL. Es particularmente útil cuando define reglas personalizadas para URL permanentes (vea la sección 2.2.2).
2.3.2 Cuerpo
Como mencionamos en la sección @ref(formato de salida), su publicación puede escribirse en R o Markdown. Tenga cuidado con las diferencias de sintaxis entre los dos formatos cuando escribe el cuerpo de una publicación.
2.3.3 Código corto
Además de todas las características de Markdown, Hugo proporciona una característica útil llamada “códigos abreviados”. Puede usar un shortcode en el cuerpo de su publicación. Cuando Hugo presenta la publicación, puede generar automáticamente un fragmento de HTML basado en los parámetros que pasa al código corto. Esto es conveniente porque no tiene que escribir o insertar una gran cantidad de código HTML en su publicación. Por ejemplo, Hugo tiene un código abreviado incorporado para incrustar tarjetas de Twitter. Normalmente, así es como inserta una tarjeta de Twitter (Figura @ref(fig: jtleek-tweet)) en una página:
<blockquote class="twitter-tweet">
<p lang="en" dir="ltr">Anyone know of an R package for
interfacing with Alexa Skills?
<a href="https://twitter.com/thosjleeper">@thosjleeper</a>
<a href="https://twitter.com/xieyihui">@xieyihui</a>
<a href="https://twitter.com/drob">@drob</a>
<a href="https://twitter.com/JennyBryan">@JennyBryan</a>
<a href="https://twitter.com/HoloMarkeD">@HoloMarkeD</a> ?
</p>
— Jeff Leek (@jtleek)
<a href="https://twitter.com/jtleek/status/852205086956818432">
April 12, 2017
</a>
</blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8">
</script>

FIGURA 2.2: A tweet by Jeff Leek.
Si usa el código abreviado, todo lo que necesita en el documento fuente de reducción es:
Básicamente, solo necesita pasar el ID del tweet a un código corto llamado tweet
. Hugo buscará el tweet automáticamente y renderizará el fragmento de HTML por usted. Para obtener más información sobre los códigos abreviados, consulte https://gohugo.io/extras/shortcodes/.
Se supone que los códigos cortos funcionan solo en documentos de Markdown. Para usar códigos abreviados en R Markdown en lugar de Markdown simple, debe llamar a la función blogdown::shortcode()
, e.g.,