build.sh (1100B)
1 #!/bin/sh -e 2 3 rm -rf public 4 mkdir -p public 5 6 if [ ! -f md2html.sh ]; then 7 curl -LO https://codeberg.org/emmett1/md2html/raw/branch/main/md2html.sh || { rm -f md2html.sh; exit 1; } 8 fi 9 chmod +x md2html.sh 10 11 for i in $(find . -type f -name "*.html" | sed 's|^\./||'); do 12 dir=${i%/*} 13 file=${i##*/} 14 title=${dir##*/} 15 [ "$dir" = "$file" ] && { 16 title=home; dir= 17 } 18 mkdir -p public/$dir 19 echo "copy html for $i..." 20 { 21 sed "s/@TITLE@/$title/g" header 22 cat $i 23 cat footer 24 } > public/$dir/$file 25 done 26 27 # docs 28 cat docs/header > docs/index.md 29 for f in docs/*.md; do 30 case $f in */index.md) continue;; esac 31 title=$(head -n1 $f) 32 file=${f##*/} 33 echo "- [$title](./${file%.md}.html)" >> docs/index.md 34 done 35 36 for i in $(find . -type f -name "*.md" | sed 's|^\./||'); do 37 dir=${i%/*} 38 file=${i##*/} 39 title=${dir##*/} 40 [ "$dir" = "$file" ] && { 41 title=home; dir= 42 } 43 mkdir -p public/$dir 44 echo "generating html for $i..." 45 { 46 sed "s/@TITLE@/$title/g" header 47 ./md2html.sh $i 48 cat footer 49 } > public/$dir/${file%.md}.html 50 done 51 52 rm -f docs/index.md 53 54 if [ -d assets ]; then 55 cp -ra assets public/ 56 fi 57 58 exit 0