Oliver Servín

Haciendo laravel-markdown compatible con Laravel Herd

La librería spatie/laravel-markdown permite convertir texto Markdown a HTML e incluso puede resaltar código a través de Shiki.

La instalación de spatie/laravel-markdown es bastante sencilla; sin embargo, tuve problemas con el resaltado porque, a pesar de tener instalada la dependencia de npm de Shiki, los bloques de código no se convertían.

Esto ocurre porque, bajo el capó, la librería ejecuta Shiki con el comando npm. Sin embargo, como estoy utilizando Laravel Herd, NPM se instala a través de NVM, lo que hace que la ruta del archivo binario de npm no esté en las rutas convencionales que busca la librería.

Para solucionarlo, tuve que crear un enlace simbólico del binario de npm de mi sistema a una de las rutas convencionales.

Primero, obtuve el path de npm con which npm y luego creé un enlace simbólico en la ruta /usr/local/bin.

which node
# /Users/oliver/Library/Application Support/Herd/config/nvm/versions/node/v22.14.0/bin/node
sudo ln -s /Users/oliver/Library/Application\ Support/Herd/config/nvm/versions/node/v22.14.0/bin/node /usr/local/bin/node

Con esto, laravel-markdown puede ejecutar npm para resaltar bloques de código Markdown utilizando Shiki.

Como nota, cuando Herd actualice Node, también será necesario actualizar el enlace simbólico.