Hugo: Shortcodes
Para hacer mi web he necesitado utilizar algunos shortcodes
y trucos, y quería
compartirlos por si a alguien le resultan útiles.
Abbr
A veces me gusta escribir abbr
, pero
Hugo no las soportaba. Darles soporte es tan sencillo como escribir el archivo
layouts/shortcodes/abbr.html
con este contenido:
|
|
Y ya puedo usarlo, de esta manera:
|
|
Plantuml
Soy fan de Plantuml. Así que quería utilizarlo. Es cierto que el tema que utilizo soporta Mermaid, que es muy potente… pero soy de la vieja escuela y me gusta Plantuml.
Así que necesitaba dos cosas: por una parte, poder injectar el código en medio
de un archivo markdown
, y lo segundo, un enlace a la imagen. Por eso escribí
el archivo layout/shortcodes/plantuml.html
:
|
|
De esta manera se deja el código del diagrama oculto y se muestra un enlace. Ejemplo de uso:
|
|
Es necesario generarlo. Para ello utilizo este target
de mi Makefile
:
|
|
Y queda así:
Tiene la pega de que tengo que escribir dos veces el nombre del archivo, en el
ejemplo anterior, shortcodes
, pero por lo demás funciona estupendamente.
Tablas complejas
¿Merece la pena crear 4 shortcodes para un único artículo? Bueno, pues yo creí que sí XD
Se trata del artículo con la comparación entre Git y Mercurial. Aquí necesitaba algo que Markdown no ofrece: si las tablas no son parte del markdown estándar, imagináos tablas conteniendo código.
Par ello tuve que crear 4 shortcodes anidables. Vamos con ellos:
complextable
El shortcode layout/shortcodes/complextable.html
no puede ser más simple:
|
|
complextable_row
Dentro, obviamente, habrá una filas, igual de simples, en
layout/shortcodes/complextable_row.html
|
|
complextable_header
Ahora podemos tener cabeceras, en
layout/shortcodes/complextable_header.html
|
|
complextable_cell
O celdas normales, en
layout/shortcodes/complextable_cell.html
|
|
resultado
Que con el código siguiente:
|
|
Se obtiene una tabla tan compleja como se desee:
Code |
---|
|