#!/bin/bash rootDir='./site/' targetDir='post/' post() { echo Building: $1 tmp=".swap" full=".fullswap" base=`basename $1` # First build the content of the site pandoc $1 > $tmp # Title, images and tables get added/fixed here sed "s/{TITLE}/${base%.*}<\/title>/g" ./templates/post-header.html > $full cat $tmp ./templates/post-footer.html >> $full sed -i 's/<img/<img class="pure-img"/g;s/<table>/<table class="pure-table">/g' $full # Move things to proper directory and cleanup mv $full "$rootDir/$targetDir/${base%.*}.html" rm -f $tmp } build_all() { mkdir -p $rootDir/post/ $rootDir/fonts/ $rootDir/img/ cp style.css "$rootDir" cp prebuild/post/style.css "$rootDir/post/" cp fonts/* $rootDir/fonts/ cp img/ $rootDir/img/ -r mv $rootDir/img/favicon.png $rootDir/ # Try to get xargs to deal with this ugliness for r in prebuild/*md;do post $r done for p in prebuild/post/*md;do post $p done } _help() { echo 'Options: -h show this prompt -p [postDirectory/*] (takes a list of paths to build from) -r build root pages -s copy stylesheets -l run live server' } server() { cd $rootDir echo 'Address: 0.0.0.0:8080' python -m SimpleHTTPServer 8080 } if [ -z $1 ] then _help exit 0 fi while getopts ":aslrhp:" opt;do case "$opt" in a) build_all;; s) cp style.css "$rootDir" cp prebuild/post/style.css "$rootDir/$targetDir" exit 0 ;; r) # Fix targetDir so that it points to the root of the site output targetDir='' post './prebuild/about.md' post './prebuild/links.md' post './prebuild/index.md' exit 0 ;; p) for file in ${@:2};do post $file done ;; h) _help;; l) server;; esac done