#!/usr/bin/env bash # Réf : consigne formateur, version figée d'un livrable = Markdown -> HTML -> CSS de pagination -> PDF. # Usage : md2pdf.sh "fichier.md" [sortie.pdf]. Sans sortie, le PDF est écrit à côté du .md. set -euo pipefail src="$1" out="${2:-${src%.md}.pdf}" here="$(cd "$(dirname "$0")" && pwd)" work="$(mktemp -d)" trap 'rm -rf "$work"' EXIT title="$(grep -m1 '^# ' "$src" | sed 's/^# //; s/&/\&/g; s/\</g')" css_title="$(grep -m1 '^# ' "$src" | sed 's/^# //; s/\\/\\\\/g; s/"/\\"/g')" logo="$(base64 -w0 "$here/logo-icon.png")" npx --yes marked@18 --gfm -i "$src" -o "$work/body.html" sed -i 's/ \([:;?!»]\)/\xc2\xa0\1/g; s/« /«\xc2\xa0/g' "$work/body.html" # Les marqueurs de preuve du rapport EC04 deviennent des pastilles, comme les badges d'état de l'application. sed -i -E 's#\[Prouvé\]#Prouvé#g; s#\[Constaté\]#Constaté#g; s#\[Absent\]#Absent#g; s#(([^<]* ?)+)#\1#g' "$work/body.html" { printf '\n