68 lines
1.8 KiB
Bash
Executable File
68 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
while [ -n "$1" ]; do # gestion des paramètres
|
|
case "$1" in
|
|
-h) echo "
|
|
Script qui transforme des fichiers markdown en pdf et html avec le même style.
|
|
|
|
-k conserve les fichiers de construction
|
|
--pdf génère seulement le pdf
|
|
--html génère seulement le html
|
|
|
|
aucun paramètre génèrera les deux formats
|
|
"
|
|
exit 0;;
|
|
--pdf) PDF=true;;
|
|
--html) HTML=true;;
|
|
-k) keep=true;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
# Si on indique aucune consigne on fait la génération en pdf et html
|
|
if [[ -z "$PDF" ]] && [[ -z "$HTML" ]]; then
|
|
PDF=true
|
|
HTML=true
|
|
fi
|
|
|
|
set -e
|
|
IN_DIR="./input-cv-md"
|
|
OUT_DIR="./output"
|
|
STYLES_DIR="styles"
|
|
STYLE="aou"
|
|
|
|
# Si il n'y a pas de fichier markdown dans le dossier d'entrée, le script s'arrète
|
|
if [[ ! -d "$IN_DIR" ]] || [[ -z "$(ls -A $IN_DIR/*.md)" ]]; then
|
|
echo "Attention il n'y a aucun CV en markdown dans le dossier $IN_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
for f in $IN_DIR/*.md; do
|
|
|
|
FILE_NAME=`basename $f | sed 's/.md//g'`;
|
|
mkdir -p $OUT_DIR/$FILE_NAME;
|
|
|
|
if [[ $HTML ]]; then
|
|
echo "### Génération du HTML"
|
|
pandoc --standalone --css ../../$STYLES_DIR/$STYLE.css \
|
|
--from markdown --to html \
|
|
--output $OUT_DIR/$FILE_NAME/index.html $f \
|
|
--metadata pagetitle=$FILE_NAME;
|
|
fi
|
|
|
|
if [[ $PDF ]]; then
|
|
echo "### Génération du PDF"
|
|
pandoc --standalone --template $STYLES_DIR/$STYLE.tex \
|
|
--from markdown --to context --variable papersize=A4 \
|
|
--output $OUT_DIR/$FILE_NAME/$FILE_NAME.tex $f;
|
|
mtxrun --path=$OUT_DIR --result=$FILE_NAME/cv-$FILE_NAME.pdf --script context $FILE_NAME.tex;
|
|
fi
|
|
|
|
# Néttoie les fichiers de génération
|
|
if [ -z "$keep" ] ; then
|
|
rm -rf $OUT_DIR/$FILE_NAME/*.log $OUT_DIR/$FILE_NAME/*.tex $OUT_DIR/$FILE_NAME/*.tuc;
|
|
fi
|
|
|
|
echo "### Fin du script"
|
|
|
|
done
|