sergio.am/build.sh

56 lines
1.5 KiB
Bash
Executable File

#! /bin/bash
set -x
rm -rf _site-tmp
mkdir -p _site-tmp
touch _site-tmp/index.md
buildDate="$(date '+%d %b %Y')"
# $1=file $2=add to index
convert_md_to_html() {
ls -la "$1"
fileName=$(basename "${1%.*}")
postDate=$(date '+%d %b %Y' -d "$(stat -c %y "$1" | awk '{print $1}')")
bodyClass="page"
if [ $2 -eq 1 ]; then
bodyClass="post"
echo "- [$(pandoc --template=pandoc-metadata.json "$1" | jq -r .title)](/$fileName.html) _${postDate}_" >> _site-tmp/index.md
fi
pandoc --template=tpl-layout.html --highlight-style=zenburn --metadata buildDate="$buildDate" --metadata postDate="$postDate" --metadata bodyClass="$bodyClass" -f markdown -t html5 "$1" > _site-tmp/"$fileName".html
}
# posts
for post in _posts/*.md; do
convert_md_to_html "$post" 1
done
# drafts
if [ $# -eq 1 ]; then
for post in _drafts/*.md; do
convert_md_to_html "$post" 1
done
fi
# pages
for post in ./*.md; do
convert_md_to_html "$post" 0
done
# index
# is there a better way to invert the file?
echo "$(tac _site-tmp/index.md)" > _site-tmp/index.md
pandoc --template=tpl-layout.html --metadata isIndex=1 --metadata buildDate="$buildDate" --metadata bodyClass="index" -f markdown -t html5 _site-tmp/index.md > _site-tmp/index.html
# static files
cp -r static _site-tmp/static
cp -r assets _site-tmp/assets
cp -r root/* _site-tmp/
# concat css
cat static/reset.css static/styles.css > _site-tmp/static/css.css
rm -rf _site
mv _site-tmp _site