Marp – Presentaciones en MarkDown

Introducción

Me parece que Markdown es uno de los formatos más inteligentes que se han inventado. Formatos como docx o pdf son excelentes para seguir formalidades o mostrar información de manera más tradicional. Sin embargo, para crear los esqueletos, los primeros borradores o tomar notas no me parece que sea tan inteligentes. Tener demasiadas opciones desvía los pensamientos de lo que es realmente importante tal como lo es el contenido y la jerarquía de las ideas. Si bien en herramientas word se puede jerarquizar y a través de (decir cómo jerarquizar), se pierde demasiado tiempo en cosas que no son importantes.

Lo mismo ocurre con las presentaciones en PowerPoint. Se pierde mucho foco y claridad en ver los estilos del titulo de los subtitulos etc. También moviendo los elementos, y crear diferentes estilos de los cuales unos apliquen para unas diapositivas y otros para otras resulta contraintuitivo y poco cómodo.

Markdown Presentation Ecosystem

Marp (Markdown Presentation Ecosystem), un ecosistema completo para crear presentaciones a partir de Markdown, escrito en Typescript/Javascript, que se forma de las siguientes capas:

  • Marpit: El motor o framework que convierte el archivo las definiciones MD/CSS en HTML/CSS.
  • Marp Core: Es una serie de extras que se ponen sobre el framework.
  • Marp CLI: La herramienta de línea de comandos que ejecuta la conversión. Es la pieza que toma tus archivos .md y los exporta a HTML, PDF, PNG, JPEG o PPTX.
  • Marp for VS Code: la extensión para Visual Studio Code que ofrece vista previa en vivo mientras escribes y permite exportar desde el propio editor, sin necesidad de tocar la terminal.

Marp-cli

Instalación

La herramienta está disponible en brew, por lo cual se puede instalar con:

brew install marp-cli

Conversión

Marp convierte los MD/CSS a HTML/CSS primero usando la implmentación de Marp Core, que renderiza cada diapositiva como un svg separado un o de otro y le agrega un visualizador de disapositivas en javascript. Convertir a HTML se hace usando:

marp input.md output.html

Los formatos otros disponibles son:

--pdf
--pptx
--pptx-editable

Cuanto se exporta en pptx solo incrusta las imagenes de la composición completa en vez de separar los diferentes elementos. Sin embargo, hay una forma experimental de exportar a PPTX editable usando el motor de libreoffice.

Flujo Personal

Teniendo en cuenta que la exportación a PPTX aún es poco fiable, el flujo que estoy usando actualmente para convertir de marp a PPTX es el siguiente:

markdown -> marp -> html \ markdown -> claude -> python-script -> pptx