-- Leo's gemini proxy

-- Connecting to gmi.osiux.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=es_AR

How To automate GraphViz generate image from dot file using alpine-org2blog


AUTHOR: Osiris Alejandro Gomez

EMAIL: osiux@osiux.com

DATE: 2023-03-06 21:37


[IMG]

[1]


las páginas quieren ser repos!


Hace poco automaticé la generación de la sección *links*[2] de mi *blog* ^1[3] creando un nuevo repositorio `osiux-links` ^2[4], de manera similar ahora la sección *dot*[5] de mi *blog* se genera a partir del repositorio `osiux-graphviz` ^3[6]


Si bien puede parecer un exceso, crear un repositorio solo por una página, este método ofrece grandes ventajas, principalmente, tener la posibilidad de actualizar una sección independientemente de todo el sitio, versionar otros tipos de archivos, darles otra vista y encadenar las diferentes CIs (*Continuous Integration*) aporta valor.


*static* vs *dynamic*


Antes una imagen generada a partor de un archivo `.dot` en el *blog* solo existía en forma de `.png` y además era completamente estática, es decir dependendía de un *commit* individual en el *repo* `blog` para ser actualizada.


Ahora a partir de archivos `.dot`, se generan de manera dinámica las imágenes en formato `.png` en el *repo* `osiux-graphviz` y mediante las definiciones del archivo `.gitlab-ci.yml`, éstas imágenes se actualizan en el *repo* `blog`, permitiendo además genenar una galería de imágenes *GraphViz* en el archivo `dot.gmi` de manera automatizada!


`alpine-org2blog`


Tuve que actualizar la imagen `alpine-org2blog`, agregando los paquetes `graphviz` y `ttf-inconsolata` a fin de realizar correctamente la generación de las imágenes.


consolidar para comparar


Hace años que tengo archivos `.dot` dispersos en diferentes proyectos, algunos inclusino ni siquiera estan versionados y sobreviven gracias los *backups* y siempre que voy a realizar un nuevo *grafo*, termino perdiendo tiempo buscando algún ejemplo anterior para tomarlo de referencia.


Consolidando los diferentes *grafos* terminados en un único *repo* puedo garantizar que los tengo todos versionados y juntos para realizar comparaciones, copiar atributos y/o estilos y por sobre todo usarlos como fuente de inspiración para nuevas ideas de representación.


a *commitear*!


De momento agregué pocos ejemplos, solo para probar que el circuito de generación automatizada funciona, y la buena noticia es que la Galería no solo se convierte a `.gmi` y de ahí a `.html`, como bonus extra, se genera en formato `.md` y `.gmi` en los diferentes *mirrors* del *Blog*.


De ahora en mas, solo basta agregar el `.dot` y todo sale sobre ruedas!


te sugiero leer


Automate conversion of blog from *org-mode* to *Html*, *Markdown* and *Gemini* using *Docker image* `alpine-org2blog` and *GitLab CI*[7]

howto launch gitlab ci from other gitlab ci repo using trigger[8]

Cómo hacer una línea de tiempo con GraphViz[9]

Usar Graphviz para generar Slides[10]

bookmarks vs links.txt[11]

gitlab-ci org-mode publish[12]


ChangeLog


`2023-03-06 22:28`[13] agregar links y footnote en *How To automate GraphViz generate image from dot file using alpine-org2blog*

`2023-03-06 21:44`[14] agregar *How To automate GraphViz generate image from dot file using alpine-org2blog*


1: file:img/alpine-org2blog-graphviz.png

2: links.gmi

3: https://osiux.com/

4: https://gitlab.com/osiux/osiux-links.git

5: dot.gmi

6: https://gitlab.com/osiux/osiux-graphviz.git

7: 2023-02-24-automate-blog-from-org-mode-to-html-markdown-gemini-using-docker-alpine-org2blog-and-gitlab-ci.gmi

8: 2023-02-14-howto-launch-gitlab-ci-from-other-gitlab-ci-repo-using-trigger.gmi

9: 2022-10-25-how-to-make-a-timeline-with-graphviz-using-timeline2dot.gmi

10: 2022-10-21-use-graphviz-for-slides.gmi

11: 2021-01-29-bookmarks-vs-links.gmi

12: 2019-04-21-gitlab-ci-org-mode-publish.gmi

13: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/f526ec41526f193b52cf2ee3a15d4aa02a8cafc7

14: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/2d2a0bf6aa1bbd132f29f2bca3449d97f6784f3d

-- Response ended

-- Page fetched on Fri May 17 02:56:45 2024