Series de artículos con HUGO

Índice, presentación, navegación

Un problema general cuando hay una serie de posts relacionados entre si es que el blog queda saturado de esos posts, todos similares y relacionados. Si el eventual o conjetural lector no está interesado en ese tópico particular, no ve otra cosa que lo induzca a seguir leyendo.

El ejemplo de esto es la serie de la lista de componentes del FT101: todos los artículos de esta lista son similares entre si.

Incluso para el lector con interés en el tema, es tedioso y poco atractivo presentar un sumario que tiene diez artículos todos igual, todos seguidos.

Presentación

Una posible solución es presentar solo un artículo representativo, el “index” de la serie, y que este sea el acceso a la misma. Sin embargo, esto presenta el problema de que si la serie es ampliada con mas artículos, o alguno de los artículos de la serie es editado/actualizado, no se vería, dado que el sumario no presenta artículos individuales de la serie.

Con estas ideas implementé el sistema actual: la serie se presenta como un solo post que se muestra en su lugar cronológicamente correspondiente tanto en el sumario como en las vistas de categorías (taxonomías HUGO…), tags, etc. Este “post” es especial, representa la cabecera de la serie, es el punto de acceso a la misma. Esto resuelve el aspecto “polución” o secuestro del sumario cuando hay muchos artículos seguidos y similares.

Para resolver el problema de como presentar la serie cuando es de alguna forma actualizada, por edición o agregado de un artículo, se actualiza el campo “date:” del artículo cabecera: esto “flota” ese artículo a un lugar mas nuevo y muestra la info relevante con una decoración ⚡NUEVO .

Yo encuentro esta solución no diría elegante pero un poco mas limpia.

Índice

El índice es un post con una prop “series_role” en Front Matter que se usa para título de la serie y como índice. Este es el post cuya fecha se va actualizar cuando se cambia algo en la serie.

Esto último se hace automágicamente usando git hooks. De esto hablaré mas adelante probablemente.

El partial de navegación inicialmente lo puse en la cabecera de cada artículo. Ocupa demasiado espacio. De momento la solución es un widget en la barra lateral, que solo aparece cuando el artículo es parte de una serie. No estoy desconforme con este mecanismo.

Tiene un inconveniente que no he resuelto aún, que es que la sidebar no es fixed, por lo tanto si el artículo es largo, cosa frecuente, hay que volver arriba para navegar.

Ya veremos.

Futuro

Lo voy a dejar un tiempo para ir viendo que experiencia tengo y que ideas me produce, pero falta ajuste. Una posible mejora es poner el nuevo artículo de la serie en lugar del índice, pero esto no sirva para un viejo artículo editado, así que tengo que resolver eso.

Tengo previsto implementar otro git hook para traducir con algún agente LLM automáticamente los artículos nuevos. Veremos que pasa.

Conclusión

Espero que estos cambios mejoren la UX. Por lo menos la implementación de todo esto me ha servido para entender mejor el framework y la tecnología subyacente, y para poder apreciar la inteligencia y elegancia detrás de Hugo ↗️ .