Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2715

Picando Código: ghpreview – Gema Ruby para previsualizar archivos Markdown con el estilo de GitHub

$
0
0

RubyLa gema ghpreview es una herramienta que te permite previsualizar un archivo Markdown localmente con el estilo de GitHub:

Cuando escribes el README para tu proyecto, quieres poder previsualizar el Markdown localmente antes de madnarlo a GitHub. ghpreview es una utilidad de línea de comando que abre tu archivo Markdown en un navegador web. Usa el estilo de GitHub y (opcionalmente) actualiza automáticamente cada vez que guardes el archivo fuente.

Corría el año 2012 y estaba trabajando en Neo (antes conocida como “New Context”), una empresa multinacional que había adquirido Cubox, empresa uruguaya donde estaba trabajando. Neo también había adquirido EdgeCase, otra empresa culturalmente bastante similar a Cubox con oficinas en Ohio y Edimburgo.

En algún momento Adam McCrea, programador en una de las oficinas de Ohio, compartió su nuevo proyecto de código abierto: ghpreview. Me resultó bastante útil, una buena manera de asegurarse de tener el formato correcto en los README de un proyecto antes de subirlo a GitHub. Así que fui a instalarla para probarla.

La gema no funcionaba en mi computadora con GNU/Linux en ese momento. Así que fui a mirar el código fuente para ver qué estaba pasando. Encontré que una vez que el archivo markdown era procesado, usaba el comando `open` para ver el HTML resultante en un navegador web. El comando open de Mac OS X abre archivos y directorios con la aplicación establecida por defecto. Para que funcionara en mi sistema, tenía que reemplazar el comando open por `xdg-open` – una herramienta independiente del entorno de escritorio para configurar las aplicaciones por defecto de un usuario. Esta herramienta está incluida en la mayoría de las distribuciones GNU/Linux con un entorno de escritorio. Así que tuve que hacer un cambio bastante simple en el código:

if RUBY_PLATFORM =~ /linux/
  command = 'xdg-open'
else
  command = 'open'
end
`#{command} #{HTML_FILEPATH}`

Al principo la gema descargaba el CSS de GitHub y mandaba un request a la API de GitHub para procesar el markdown a HTML. Pocos días después del lanzamiento de ghpreview, GitHub anunció html-pipeline, una gema que incluye varias utilidades HTML internas usadas en GitHub. Esto incluye compilación Markdown y destacado de sintaxis. Así que mi segundo Pull Request al código de la gema fue evitar el request a la API de GitHub y usar html-pipeline. Las hojas de estilo CSS seguían siendo descargadas de GitHub, pero se cachean por una semana.

Hasta el año 2013 la gema fue mantenida de manera relativamente regular. Pasó un tiempo, Neo implosionó, y sus programadores siguieron distintos caminos por la vida. En marzo de 2017, me encontraba en Escocia trabajando en Cultivate, la empresa antes conocida como Neo en Escocia, previamente conocida como EdgeCase en Escocia. Editando un archivo markdown con un formato relativamente complejo, recordé la existencia de ghpreview. Así que me decidí a instalarla.

Habían pasado mucha versiones de Ruby desde 2013, mucha actualizaciones de dependencias y más. Por lo que no se podía instalar la gema. Nuevamente bajé el código fuente y me puse a actualizar cosas hasta que logré instalarla. Publiqué un Pull Request en el código fuente de la gema, y seguí usando mi rama en local. Casi dos años después, en Setiembre de 2019, un comentario en el Pull Request reavivó la discusión. Adam, el desarrollador original de la gema, no la usaba hacía años. Así que se ofreció a entregar el mantenimiento a alguien más. Un par de correos después, me convertí en el nuevo mantenedor de la gema.

Así que en Setiembre, después de casi 6 años, se publicó una versión nueva de ghpreview: 0.2.0. En principio el mayor cambio es ser instalable en versiones modernas de Ruby. Demás sigue usando html-pipeline para imitar el estilo de GitHub cuando previsualizamos archivos markdown. Sin embargo, no logré recrear exactamente igual el resaltado de sintaxis todavía. Espero eventualmente tener tiempo para dedicarle a eso. Otro trabajo en proceso que tengo en una rama paralela es un build en Travis con tests. Tengo alguna idea más, pero como siempre falta tiempo. Pero estoy contento de estar manteniendo el proyecto cuando la alternativa es que quedara en el olvido.

Pueden ver el código fuente de ghpreview en GitHub:
https://github.com/edgecase/ghpreview/


Viewing all articles
Browse latest Browse all 2715

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.