#!/usr/bin/env sh # Site specific settings DOMAIN="https://iiogama.0x212.com" TITLE="Some dude doing stuff" DESCRIPTION="iiogama@0x212.com" COPYRIGHT="Copyright $(date +%Y), Thai Noodles" AUTHOR="Thai Noodles, (iiogama@0x212.com)" HTML_LANG="en_US" # Your document (HTML) language setting CONTENT_DIR="content" BLOG_DIR="blog" ASSET_DIR="assets" OUTPUT_DIR="_output" FEED_FILE="index.xml" TIME="01:00:00 PST" TTL="60" function build_pages() { rsync -r --exclude="*.html" "$CONTENT_DIR/" "$OUTPUT_DIR/" rsync -r "$ASSET_DIR/" "$OUTPUT_DIR/" find $CONTENT_DIR -type f -name "*.html" | while read file; do PAGE_FILE="$(echo "$file" | sed "s/$CONTENT_DIR/$OUTPUT_DIR/")" echo '' >> "$PAGE_FILE" echo '' >> "$PAGE_FILE" cat "templates/_head.html" >> "$PAGE_FILE" echo '' >> "$PAGE_FILE" cat "templates/_nav.html" "$file" "templates/_footer.html" >> "$PAGE_FILE" echo '' >> "$PAGE_FILE" echo '' >> "$PAGE_FILE" done } function build_feed() { echo " $TITLE $DOMAIN $DESCRIPTION $COPYRIGHT $TTL" >> "$OUTPUT_DIR/$FEED_FILE" find $OUTPUT_DIR/$BLOG_DIR -type f -name "*.html" | while read file; do POST_DATE="$(date -d "$(sed -n 's|

\([^<]*\)

$|\1|p' $file)" +"%a, %d %b %Y %H:%M:%S")" CAT_DATE="$(date -d "$(sed -n 's|

\([^<]*\)

$|\1|p' $file)" +"%Y/%m/%d/%u")" POST_TITLE="$(sed -n 's|

\([^<]*\)

$|\1|p' $file)" POST_CONTENT="$(sed -n '/
/,/<\/article>/p' $file | sed -e '1s/.*
//' -e '$s/<\/article>.*//')" echo " $POST_DATE PST $CAT_DATE $POST_TITLE $DOMAIN/$BLOG_DIR/$(basename ${file}) $AUTHOR $DOMAIN/$BLOG_DIR/$(basename ${file}) " >> "$OUTPUT_DIR/$FEED_FILE" done echo " " >> "$OUTPUT_DIR/$FEED_FILE" xsltproc "$OUTPUT_DIR/$FEED_FILE" > "$OUTPUT_DIR/$BLOG_DIR/index.html" } case "$1" in build) build_pages build_feed ;; esac