2021-09-16 13:28:31 +02:00
|
|
|
# Página web del hackmeeting
|
|
|
|
|
2021-11-09 13:01:56 +01:00
|
|
|
La principal ventaja de esta web con respecto a la que hay actualmente es que
|
|
|
|
no necesita mantenimiento, mantiene la posibilidad de editar contenido por
|
|
|
|
varias personas y simplifica el backup.
|
|
|
|
|
|
|
|
El flujo de trabajo típico para añadir contenido a la web sería este:
|
|
|
|
|
|
|
|
1. Crear o editar un fichero en la carpeta `content`
|
|
|
|
2. Comprobar en local que la modificación es correcta
|
|
|
|
3. Hacer un commit con las modificaciones
|
|
|
|
4. Subir el commit al repositorio de git
|
|
|
|
5. Compilar la web
|
|
|
|
6. Enviar los ficheros al servidor web.
|
|
|
|
|
|
|
|
Los pasos 5 y 6 se pueden automatizar con alguna herramienta de integración
|
|
|
|
continua. En este ejemplo se usa drone.io. Para simplificar el resto de los
|
|
|
|
pasos la idea es preparar scripts u otro tipo de programas, que ayuden a
|
|
|
|
generar el contenido de manera más interactiva.
|
|
|
|
|
|
|
|
Este proceso puede ser demasiado complicado para personas sin experiencia en
|
|
|
|
git o markdown, sobre todo las integrantes del grupo local, que además no
|
|
|
|
conocen el funcionamiento de esta herramienta. Propongo instaurar el rol de
|
|
|
|
"madrina(s) de grupo local", gente que se encargue de asistir al grupo local y
|
|
|
|
en caso necesario de encargarse de subir los contenidos a la web.
|
|
|
|
|
|
|
|
Los datos que son más útiles para el grupo local se guardan en ficheros csv,
|
|
|
|
que es fácil de modificar en una hoja de cálculo, y permite un postpropceso
|
|
|
|
sencillo para obtener datos interesantes. Por ejemplo la cantidad de asistentes
|
|
|
|
que hay apuntados para cenar el sábado.
|
|
|
|
|
2021-09-16 13:28:31 +02:00
|
|
|
## Crear contenido
|
|
|
|
|
2021-11-20 10:33:42 +01:00
|
|
|
Hay una serie de comandos auxiliares para gestionar el contenido de la web de
|
|
|
|
manera sencilla.
|
2021-09-16 13:28:31 +02:00
|
|
|
|
2021-11-20 10:33:42 +01:00
|
|
|
Todos estos comandos aceptan un parámetro opcional: el año en el que estamos
|
|
|
|
trabajando. Si no se indica año se asume el actual.
|
2021-09-16 13:28:31 +02:00
|
|
|
|
2021-11-20 10:33:42 +01:00
|
|
|
Para crear un nodo:
|
2021-09-17 11:53:00 +02:00
|
|
|
|
2021-11-20 10:33:42 +01:00
|
|
|
bin/nuevo_nodo
|
|
|
|
|
|
|
|
Para gestionar la asistencia:
|
|
|
|
|
|
|
|
bin/asistencia
|
|
|
|
|
|
|
|
Para gestionar las necesidades:
|
|
|
|
|
|
|
|
bin/necesidades
|
2021-09-17 11:53:00 +02:00
|
|
|
|
2021-09-17 12:19:42 +02:00
|
|
|
Para crear una página corriente:
|
|
|
|
|
2021-11-20 10:33:42 +01:00
|
|
|
bin/nueva_pagina
|
2021-09-17 12:19:42 +02:00
|
|
|
|
2021-09-16 13:28:31 +02:00
|
|
|
Para empezar un nuevo hackmeeting:
|
|
|
|
|
2021-11-20 10:33:42 +01:00
|
|
|
bin/nuevo_hackmeeting
|
2021-09-16 13:28:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
## Mini intro a Hugo
|
|
|
|
|
|
|
|
Para probar la web en local hay que instalarse hugo:
|
|
|
|
https://gohugo.io/getting-started/installing/
|
|
|
|
|
|
|
|
Para poner en marcha la web en modo desarrollo:
|
|
|
|
|
|
|
|
hugo server -D
|
|
|
|
|
|
|
|
Para compilar la web ejecutar el comando `hugo` sin parámetros, luego
|
|
|
|
basta con copiar el contenido de la carpeta `public` al servidor web.
|
|
|
|
|
|
|
|
Todo el contenido de la web está en la carpeta `content`.
|
|
|
|
|
|
|
|
Las plantillas para renderizar el contenido están en la carpeta `layouts`.
|
|
|
|
|
|
|
|
Las plantillas para generar contenido están en la carpeta `archetypes`.
|
|
|
|
|
|
|
|
Los ficheros estáticos están en la carpeta `static`, se copian tal cual a la
|
|
|
|
carpeta `public`.
|
|
|
|
|
|
|
|
Más información: https://gohugo.io/documentation/
|
2021-09-16 14:10:00 +02:00
|
|
|
|
|
|
|
|
2021-09-17 12:19:42 +02:00
|
|
|
## Estructura básica del contenido
|
|
|
|
|
|
|
|
Cada año creamos una carpeta nueva dentro de `content`, usando el archetypes `hm`.
|
|
|
|
Esta carpeta tiene la página inicial, el manifiesto, el listado de nodos y la
|
|
|
|
página de asistencia.
|
|
|
|
|
|
|
|
|
2021-09-16 14:10:00 +02:00
|
|
|
## Shortcodes
|
|
|
|
|
|
|
|
Estos son los shortcodes definidos para el hackmeeting:
|
|
|
|
|
|
|
|
### rawHTML
|
|
|
|
|
|
|
|
Renderiza el contenido del shortcode sin procesar, por lo que se puede meter html arbitrario.
|
|
|
|
|
|
|
|
Ejemplo:
|
|
|
|
|
|
|
|
{{< rawHTML >}}
|
|
|
|
<table>
|
|
|
|
<tr><td>Una tabla</td></tr>
|
|
|
|
</table>
|
|
|
|
{{< /rawHTML >}}
|
2021-09-16 19:41:07 +02:00
|
|
|
|
|
|
|
### csvTable
|
|
|
|
|
|
|
|
Renderiza un csv como una tabla HTML. Hay que pasarle dos parámetros, el path
|
|
|
|
del csv relativo a la raíz del proyecto y la clase css que se le asignará a la
|
|
|
|
tabla.
|
|
|
|
|
|
|
|
Hay que generar un fichero csv separado por comas.
|
|
|
|
|
|
|
|
Ejemplo, para un fichero `content/2019/nodos/parrilla_viernes.csv':
|
|
|
|
|
|
|
|
{{< csvTable file="/content/2019/nodos/parrilla_viernes.csv" class="parrilla" >}}
|