Convertir des fichiers Markdown en HTML ou PDF en quelques secondes

Markdown aide les personnes qui créent du contenu web, comme moi, à rédiger facilement du texte adapté au web. Il offre juste assez de mise en forme pour rester compréhensible par les humains, tout en permettant aux ordinateurs de lui donner du style grâce à HTML et CSS. Markdown est indépendant de la plateforme, et sa syntaxe peut s’apprendre en seulement cinq minutes. Si certaines personnes estiment qu’il existe de meilleurs formats, Markdown est incontestablement devenu la langue commune des développeurs qui rédigent des articles de blog et de la documentation. Il est même utilisé dans de nombreuses applications web du quotidien, comme Reddit, Gmail et GitHub. Si Markdown n’est pas encore un réflexe pour vous, de nombreuses ressources sont disponibles en ligne, comme cet aide-mémoire que je gardais à portée de main à mes débuts.

La dernière fois que nous avons présenté (English) notre Robot /document/convert (English), fin 2019, ce Robot en était encore à ses débuts et ne pouvait convertir qu’entre les formats SRT et VTT. Depuis, le Robot a été enrichi de nombreux formats supplémentaires.
Aujourd’hui, j’ai le plaisir d’annoncer que nous avons étendu la prise en charge des fichiers de notre Robot /document/convert (English) à Markdown ! Vous pouvez désormais transformer automatiquement des fichiers Markdown en pages web, ou même en PDF. Générez rapidement des factures, des contrats ou des bons de commande en Markdown, transmettez-les à notre Robot /document/convert (English), puis obtenez des PDF à enregistrer dans votre bucket S3. Ou peut-être vendez-vous à des entreprises qui exigent une documentation au format PDF ? Intégrez Transloadit à votre CI et continuez à écrire en Markdown 😄
Comment convertir Markdown en HTML/PDF
Le Robot /document/convert (English)
dispose d’un nouveau paramètre, markdown_format. Ce paramètre est nécessaire, car
Markdown possède plusieurs variantes, chacune avec ses propres
subtilités. Transloadit prend actuellement en charge les valeurs "commonmark" et
"gfm" (GitHub Flavored Markdown).
Comme indiqué plus haut, les fichiers d’entrée en Markdown peuvent être convertis en
"html" ou en "pdf" en combinant ce nouveau paramètre
avec notre paramètre format déjà existant.
Pour vous guider dans l’utilisation de cette nouvelle fonctionnalité, nous avons créé le script ci-dessous :
Avant de l’exécuter, créez votre propre
ensemble d’informations d’identification de Template
pour Amazon S3 et donnez-lui un nom, en suivant le guide de configuration S3 (English).
Remplacez YOUR_AWS_CREDENTIALS par le nom enregistré. Utilisez un bucket privé avec S3 Block
Public Access activé et ne fournissez aucun en-tête ACL ou d’octroi d’autorisations. Définir
acl sur bucket-default omet l’en-tête ACL généré ;
cela ne rend pas le bucket privé.
// 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)
})
Il s’agit d’un script Node.js, mais ce flux de travail peut désormais être intégré à votre application web ou mobile, à votre service back-end ou à votre utilitaire en ligne de commande grâce à 20 SDK pratiques, comme Uppy ou le SDK Go, ainsi que directement via notre API REST JSON.
Notre script se compose de quelques Steps :
- Importer un fichier Markdown avec notre Robot /http/import
- Convertir ce fichier Markdown en PDF
- Créer des vignettes d’aperçu de chaque page du PDF avec le Robot /document/thumbs
- Enregistrer les fichiers obtenus sur S3
Pour exécuter le script, nous avons utilisé les commandes suivantes :
# 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
Le script affiche l’URL du PDF et celle de la vignette. Une URL renvoyée n’accorde pas d’accès public en lecture à un objet privé ; une autorisation de lecture distincte est nécessaire pour le récupérer. Cette vignette d’exemple montre le rendu du fichier Markdown :

Vous verrez que notre PDF a été généré avec le style Markdown de GitHub. Ces
thèmes relèvent du moteur de rendu Markdown, plutôt que de Markdown
lui-même. Pour contrôler le thème de rendu, utilisez le paramètre
markdown_theme. Deux valeurs sont actuellement prises en charge :
"github" (par défaut) et "bare".
Pour conclure
Voilà ! Nous espérons que vous intégrerez notre Robot /document/convert (English) amélioré à votre flux de travail Transloadit. Comme toujours, n’hésitez pas à nous contacter sur Twitter pour nous faire part de vos retours. Sachez que Transloadit offre un généreux volume de trafic de 5 GB/mois avec notre offre Community gratuite. Tous les développeurs peuvent donc utiliser cette fonctionnalité sans sortir leur carte bancaire. 5 GB représentent beaucoup de PDF, alors pensez à vous inscrire 😄