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.