Index

lowdown

Un convertisseur de markdown vers différent formats.

Convertir du markdown en gemtext:

lowdown content/about.md -tgemini

Convertir du markdown en HTML:

lowdown content/about.md -thtml

Voici un exemple plus complet où lowdown est combiné à d'autres applications POSIX shell (sort, head, grep, cat) pour créer un générateur de site minimaliste:

#!/bin/sh
# md2web.sh
#
# Conventions:
# - Les noms des fichiers markdown doivent êtres préfixés avec une date au format YYYY-MM-DD-nom-de-la-page.md
# - Dans ces fichiers le titre de premier niveau doit être sur la première ligne

# Créer feed.md et effacer son contenu à chaque exécution
touch feed.md & echo "" > feed.md

find . -type f -name "*.md" ! -name "index.md" ! -name "feed.md" | sort -r | while read -r mdfile; do
  # Chemin du fichier sans l'extension .md
  bname="$(basename "$mdfile" .md)"

  # Extraire la date du nom du fichier
  date="$(echo "$bname" | grep -Eo '[0-9]{4}-[0-9]{2}-[0-9]{2}')"

  # Extraire le titre du fichier
  title="$(cat < "$mdfile" | head -n 1 | grep -Eo '[^#{1}\s].+')"

  # URL du fichier HTML
  url="$bname.html"

  # Entrée du site au format markdown
  entry="* $date [$title]($url)"

  # Créer la page HTML correspondante
  lowdown -s "$mdfile" -o "$url" -thtml -M title="$title - monsiteweb.com"

  echo "$entry" >> feed.md
done

# Créer l'index en y incluant feed.md
cat <<EOF | lowdown -s - -o "index.html" -thtml -M title="Mon site web - monsiteweb.com"
# Un site web

$(cat feed.md)

EOF

Sinon, une autre manière de personnaliser le HTML généré, est de modifier les templates par défaut de lowdown. Il sagit de copier l'original et d'indiquer l'alternative avec le paramètre --template.

Les originaux se trouvent, selon de votre système d'exploitation, à quelque part comme ici: /usr/local/share/lowdown.

Vous copiez le template à modifier dans l'arborescence de votre projet:

cp /usr/local/share/lowdown/html/default.html ~/Applications/md2web/index.tpl.html

Après avoir procédé aux changements, vous l'utilisez comme ceci:

lowdown -s - -o "index.html" -thtml --template index.tpl.html

Pour plus de détails, visiter le site officiel de lowdown: https://kristaps.bsd.lv/lowdown/.