diff --git a/README.md b/README.md
index a2fdc72..5181d5e 100644
--- a/README.md
+++ b/README.md
@@ -50,3 +50,16 @@ Ejemplo:
Una tabla |
{{< /rawHTML >}}
+
+### 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" >}}
+
diff --git a/content/2019/nodos/_index.md b/content/2019/nodos/_index.md
index c59b650..5013efa 100644
--- a/content/2019/nodos/_index.md
+++ b/content/2019/nodos/_index.md
@@ -16,90 +16,7 @@ listas.
## Viernes 20
-{{< rawHTML >}}
-
-
-
- |
- ____Gizartetxe____ |
- ____Gaztetxe__ |
- ____Cine___________ |
-
-
- 09:00 |
- DESAYUNO / BREAKFAST |
-
-
- 10:00 |
-
-
- 11:00 |
- ASAMBLEA PREPARATORIA HACKMEETING |
-
-
- 12:00 |
-
-
- 13:00 |
- |
- |
- |
-
-
- 14:00 |
- COMIDA |
-
-
- 15:00 |
-
-
- 16:00 |
- ASAMBLEA GENERAL HACKMEETING |
-
-
- 17:00 |
-
-
- 18:00 |
- Audio en el fediverso: Introducción a Funkwhale [[1]] |
- |
- |
-
-
- 19:00 |
- Cómo funciona internet [[2]] |
- Mesa redonda. Características del software para que empodere nuestras comunidades [[3]] |
- Ruidismo DIY | Live Coding: Generación de música a través de algoritmos [[4]] |
-
-
- 20:00 |
- |
-
-
- 21:00 |
- CENA |
-
-
- 22:30 |
- |
- 10 minutes Talks:
- Host a radical wordpress MU, tech stuffs of noblogs.org [[5]]
-
- |
- |
-
-
- 23:00 |
- |
- |
- |
-
-
- 24:00 |
-
-
-
-{{< /rawHTML >}}
+{{< csvTable file="/content/2019/nodos/parrilla_viernes.csv" class="parrilla" >}}
## Sábado 21
diff --git a/content/2019/nodos/parrilla_viernes.csv b/content/2019/nodos/parrilla_viernes.csv
new file mode 100644
index 0000000..e4692e8
--- /dev/null
+++ b/content/2019/nodos/parrilla_viernes.csv
@@ -0,0 +1,17 @@
+,Gizartetxe,Gaztetxe,Cine
+09:00:00,DESAYUNO / BREAKFAST,DESAYUNO / BREAKFAST,DESAYUNO / BREAKFAST
+10:00:00,,,
+11:00:00,ASAMBLEA PREPARATORIA HACKMEETING,ASAMBLEA PREPARATORIA HACKMEETING,ASAMBLEA PREPARATORIA HACKMEETING
+12:00:00,,,
+13:00:00,,,
+14:00:00,COMIDA,COMIDA,COMIDA
+15:00:00,,,
+16:00:00,ASAMBLEA GENERAL HACKMEETING,ASAMBLEA GENERAL HACKMEETING,ASAMBLEA GENERAL HACKMEETING
+17:00:00,,,
+18:00:00,Audio en el fediverso: Introducción a Funkwhale [[1]] ,,
+19:00:00,Cómo funciona internet [[2]] ,Mesa redonda. Características del software para que empodere nuestras comunidades [[3]] ,Ruidismo DIY | Live Coding: Generación de música a través de algoritmos [[4]]
+20:00:00,,,
+21:00:00,CENA,CENA,CENA
+22:30:00,,"10 minutes Talks: Host a radical wordpress MU, tech stuffs of noblogs.org [[5]] ",
+23:00:00,,,
+24:00:00,,,
diff --git a/layouts/shortcodes/csvTable.html b/layouts/shortcodes/csvTable.html
new file mode 100644
index 0000000..b8d49d3
--- /dev/null
+++ b/layouts/shortcodes/csvTable.html
@@ -0,0 +1,16 @@
+{{ $class := .Get "class" }}
+{{ $file := .Get "file" }}
+{{ $data := getCSV "," $file }}
+
+{{ range $row, $columns := $data }}
+
+ {{ range $columns }}
+ {{ if eq $row 0 }}
+ {{ . }} |
+ {{ else }}
+ {{ . }} |
+ {{ end }}
+ {{ end }}
+
+{{ end }}
+
diff --git a/static/css/base.css b/static/css/base.css
index d23ab23..e8f0c7c 100644
--- a/static/css/base.css
+++ b/static/css/base.css
@@ -47,3 +47,29 @@ aside a {
main {
flex: 1;
}
+
+table {
+ border-collapse: collapse;
+ border: 1px solid black;
+}
+
+table th, table td {
+ border: 1px solid black;
+ padding: 0.25em;
+}
+
+table.parrilla td:first-child {
+ font-weight: bold;
+}
+
+table.parrilla td:nth-child(2) {
+ background-color: #ddd;
+}
+
+table.parrilla td:nth-child(3) {
+ background-color: #ccc;
+}
+
+table.parrilla td:nth-child(4) {
+ background-color: #eee
+}