Convierte archivos Markdown a HTML o PDF en segundos

Markdown ayuda a los creadores de contenido web, como yo, a escribir con facilidad texto apto para la web. Permite justo el formato suficiente para que las personas sigan entendiéndolo, mientras que las computadoras pueden renderizarlo con estilo, usando HTML y CSS. Markdown es independiente de la plataforma y su sintaxis se puede aprender en apenas cinco minutos. Aunque algunos sostienen que existen formatos superiores, es indiscutible que Markdown se ha convertido en la lingua franca entre los desarrolladores que escriben publicaciones de blog y documentación. Incluso se usa en muchas aplicaciones web del día a día como Reddit, Gmail y GitHub. Si Markdown todavía no te resulta natural, hay muchos recursos disponibles en línea, como esta hoja de referencia que tenía a mano cuando di mis primeros pasos.

La última vez que hablamos (English) de nuestro Robot /document/convert, allá por finales de 2019, el Robot aún estaba en sus inicios y solo podía convertir entre los formatos SRT y VTT. Desde entonces, el Robot se ha mejorado con muchos formatos adicionales.
Hoy me complace compartir que hemos ampliado el soporte de archivos de nuestro Robot /document/convert para incluir Markdown. Ahora puedes convertir automáticamente archivos Markdown en páginas web o incluso en PDF. Genera rápidamente facturas, contratos o formularios de pedido en Markdown, pásalos a nuestro Robot /document/convert y haz que se rendericen como PDF para guardarlos en tu bucket de S3. ¿O quizá vendes a empresas que exigen que la documentación se entregue en PDF? Conecta Transloadit a tu CI y sigue escribiendo Markdown 😄
Cómo convertir de Markdown a html/pdf
Un parámetro nuevo del Robot /document/convert
es markdown_format. Este parámetro es necesario porque Markdown tiene varias
variantes que tienen, cada una, sus propias
diferencias sutiles. Actualmente, Transloadit admite "commonmark" y
"gfm" (GitHub Flavored Markdown) como valores.
Como mencionamos arriba, los archivos de entrada en Markdown se pueden convertir a "html" o "pdf"
combinando este nuevo parámetro con nuestro parámetro format ya existente.
Para guiarte por el proceso de uso de esta nueva funcionalidad, hemos creado el siguiente script:
// yarn add transloadit@3
const Transloadit = require('transloadit')
;(async () => {
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_AUTH_SECRET,
})
const assemblyStatus = await transloadit.createAssembly({
waitForCompletion: true,
params: {
steps: {
imported: {
robot: '/http/import',
url: 'https://raw.githubusercontent.com/transloadit/uppy/master/README.md',
},
converted: {
use: 'imported',
robot: '/document/convert',
format: 'pdf',
markdown_format: 'gfm',
},
thumbed: {
use: 'converted',
robot: '/document/thumbs',
density: '300',
trim_whitespace: false,
},
exported: {
use: ['converted', 'thumbed'],
robot: '/s3/store',
credentials: 'demo_s3_credentials',
url_prefix: 'https://demos.transloadit.com/',
},
},
},
})
const pdf = assemblyStatus.results.converted[0]
const thumb = assemblyStatus.results.thumbed[0]
console.log(`Your PDF (${pdf.meta.page_count} pages) is ready at: ${pdf.ssl_url}`)
console.log(`Here's a thumbnail of the first page: ${thumb.ssl_url}`)
})().catch((err) => {
console.log(err)
process.exit(1)
})
Este es un script de Node.js, pero ahora el flujo de trabajo se puede integrar en tu aplicación web o móvil, en tu servicio back-end o en tu utilidad de línea de comandos mediante 20 prácticos SDK como Uppy o el SDK de Go, así como directamente a través de nuestra REST API JSON.
Nuestro script se compone de unos cuantos Steps:
- Importar un archivo Markdown con nuestro Robot /http/import
- Convertir este Markdown a PDF
- Crear miniaturas de vista previa de cada una de las páginas del PDF con el Robot /document/thumbs
- Guardar en S3 los archivos resultantes
Para ejecutar el script, usamos los siguientes comandos:
# Find your Auth Key and Auth Secret: https://transloadit.com/docs/api/authentication/
export TRANSLOADIT_AUTH_KEY=****
export TRANSLOADIT_AUTH_SECRET=********
node md-to-pdf.js
El script imprime las URL del PDF y de la miniatura. Esta miniatura de ejemplo muestra el Markdown renderizado:

Verás que nuestro PDF se renderizó con el estilo Markdown de GitHub. Esto se debe a que, al igual
que ocurre con la variedad de formatos, Markdown también admite numerosos
temas. Para controlar dichos temas, usa el parámetro
markdown_theme. Actualmente se admiten dos valores: "github" (predeterminado) y "bare".
Para terminar
¡Eso es todo! Esperamos ver nuestro Robot /document/convert mejorado en tu flujo de trabajo de Transloadit. Y, como siempre, no dudes en escribirnos en Twitter si tienes algún comentario. Ten en cuenta que Transloadit ofrece unos generosos 5 GB/mes de tráfico con nuestro plan Community gratuito. Así que cualquier desarrollador puede usarlo sin sacar su tarjeta de crédito. 5 GB dan para muchos PDF, así que considera registrarte 😄