Calendario estilo Git con fechas personalizadas
calendario estilo git creado a partir de una lista de fechas guardadas como archivo csv
Daniel Gustaw
• 2 min read
Supongamos que tienes un conjunto de fechas. Quieres mostrar estas fechas de una manera clara y legible.
Por ejemplo, así:

Así que tengo una gran información. Es una línea de código, tal vez dos…
En este artículo mostraré cómo generar una imagen como estas.
¿Qué necesitas?
- jq - gran herramienta para el procesamiento de json / texto
- node - intérprete de js
- awk - procesador de texto para seleccionar datos
Instalación
npm i -g cli-gh-cal
Preparar un archivo con fechas
Queremos preparar un archivo con fechas como estas.
2019-08-13
2018-05-19
2018-06-22
2019-04-16
Permítanos suponer que necesita mostrar las fechas de creación de archivos en su carpeta de fotos. Puede hacerlo utilizando el comando
ls -l --time-style=long-iso . | awk '{print $6}' | sort > /tmp/dates.csv
La opción --time-style permite mostrar las fechas en un formato fácil de procesar. A continuación, awk selecciona la columna con las fechas y las fechas ordenadas se guardan en un archivo temporal /tmp/dates.csv.
Mostrando un calendario estilo git
Ahora, si deseas mostrar estas fechas, necesitas escribir
cli-gh-cal --data "$(jq -R '[inputs | [.,1] ]' < /tmp/dates.csv)"
En este caso, ponemos a trabajar jq - un potente generador de plantillas para archivos json. Permite reemplazar la lista de fechas por una cadena json requerida por cli-gh-cal. Después de ejecutar este comando, deberías ver una imagen similar a la presentada al principio.
Paquetes requeridos
Para trabajar aquí, es necesario tener instalado node. Recomiendo instalarlo con nvm en la máquina local.
https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04
El siguiente paquete - cli-gh-cal se puede instalar mediante npm - el gestor de paquetes de node.
Finalmente, también necesitas jq.
Espero que te guste este artículo. Para mí, es un gran ejemplo de cuán poca cantidad de código se necesita para lograr resultados de gran apariencia en la visualización de datos hoy en día. ¡Guau!
Captura de pantalla de mi consola

Other articles
You can find interesting also.
Svelte snake desplegado en deno
Svelte Snake es un juego simple escrito en Svelte. Está desplegado en Deno, un entorno de ejecución seguro para JavaScript y TypeScript.
Daniel Gustaw
• 10 min read
CodinGame: Multiplicación de cuaterniones - Rust, NodeJS - Análisis, Álgebra
En este artículo, veremos cómo implementar la multiplicación de cuaterniones en Rust y NodeJS. Aprenderás sobre el análisis y el álgebra.
Daniel Gustaw
• 18 min read
Simplificando la línea de comandos de Linux con GPT-CLI (rust, código abierto)
Ejecuta comandos de Linux con lenguaje natural. Ej.: 'muestra mi tarjeta gráfica' en lugar de 'lspci | grep VGA', proyecto de código abierto escrito en Rust
Daniel Gustaw
• 4 min read