Convierte archivos Markdown a HTML o PDF en segundos

Markdown ayuda a quienes creamos contenido web a escribir fácilmente texto adecuado para la web. Permite aplicar el formato justo para que las personas puedan seguir entendiendo el texto y las computadoras puedan renderizarlo con estilo mediante HTML y CSS. Markdown es independiente de la plataforma y su sintaxis se puede aprender en tan solo cinco minutos. Aunque hay quienes sostienen que existen formatos superiores, no cabe duda de que Markdown se ha convertido en la lengua franca entre los desarrolladores que escriben entradas de blog y documentación. Incluso se usa en muchas aplicaciones web cotidianas como Reddit, Gmail y GitHub. Si todavía no usas Markdown con naturalidad, 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 de nuestro Robot /document/convert, a finales de 2019, el Robot todavía estaba en sus inicios y solo podía convertir entre los formatos SRT y VTT. Desde entonces, el Robot se ha mejorado para admitir muchos formatos adicionales.
Hoy me alegra compartir que hemos ampliado los formatos de archivo que admite 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 pedidos de venta en Markdown, pásalos a nuestro Robot /document/convert y obtén versiones en PDF para guardarlas en tu bucket de S3. ¿O quizás vendes a empresas que requieren documentación en PDF? Integra Transloadit en tu CI y sigue escribiendo en Markdown 😄
Cómo convertir de Markdown a HTML/PDF
Uno de los nuevos parámetros del Robot /document/convert
es markdown_format. Este parámetro es necesario porque Markdown tiene varias
variantes, cada una
con sus propias diferencias sutiles. Actualmente, Transloadit admite "commonmark" y
"gfm" (GitHub Flavored Markdown) como valores.
Como mencionamos antes, los archivos de entrada en Markdown se pueden convertir a
"html" o "pdf" al combinar este nuevo parámetro
con el parámetro format, que ya existía.
Para guiarte en el uso de esta nueva función, hemos creado el siguiente script:
Antes de ejecutarlo, crea tu propia credencial de Template para Amazon S3
mediante la guía de configuración de S3 y asígnale el nombre que elijas. Reemplaza
YOUR_AWS_CREDENTIALS por el nombre con el que la guardaste. Usa un bucket privado con
S3 Block Public Access activado y no proporciones encabezados ACL ni de concesión de permisos.
Establecer acl en bucket-default omite el encabezado ACL
generado; no hace que el bucket sea privado.
// 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: 'YOUR_AWS_CREDENTIALS',
acl: 'bucket-default',
},
},
},
})
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 puedes integrar el flujo de trabajo en tu aplicación web o móvil, servicio de back-end o utilidad de línea de comandos mediante 20 prácticos SDK como Uppy o el SDK de Go, así como directamente mediante nuestra REST API de JSON.
Nuestro script consta de unos cuantos Steps:
- Importar un archivo Markdown mediante nuestro Robot /http/import
- Convertir este Markdown a PDF
- Crear miniaturas de vista previa de cada página del PDF mediante el Robot /document/thumbs
- Guardar los archivos resultantes en S3
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. Una URL devuelta no concede acceso público de lectura a un objeto privado; necesitas una autorización de lectura independiente para recuperarlo. Esta miniatura de ejemplo muestra el Markdown renderizado:

Verás que nuestro PDF se renderizó con el estilo Markdown de GitHub. Estos
temas pertenecen al renderizador de Markdown, en lugar de
al propio Markdown. Para controlar el tema de renderizado, usa el parámetro
markdown_theme. Actualmente se admiten dos valores: "github" (predeterminado) y "bare".
Para terminar
¡Eso es todo! Esperamos que incorpores nuestro mejorado Robot /document/convert a tu flujo de trabajo de Transloadit. Y, como siempre, no dudes en contactarnos por Twitter si tienes algún comentario. Recuerda que Transloadit ofrece unos generosos 5 GB/mes de tráfico con nuestro plan Community gratuito. Así, cualquier desarrollador puede usarlo sin recurrir a su tarjeta de crédito. 5 GB alcanzan para muchos PDF, así que considera registrarte 😄