#!/bin/sh # Put your articles in a blog_src directory # Depends on pandoc for markdown to html convertion cp -vf index.template.html index.html rm -vf blog/* [ ! -d blog_src ] || [ -z "$(ls blog_src)" ] && exit 1 mkdir -p blog for article_path in blog_src/*.md do article_dst_path=$(echo "$article_path" | sed 's/blog_src/blog/' | sed 's/\.md/.html/') # Convert markdown article to html tmp_file=$(mktemp) pandoc -f markdown -t html < "$article_path" > "$tmp_file" # Put the blog content in a wrapper template sed "// r $tmp_file" < blog.template.html > "$article_dst_path" # Add blog artcle link to the index.html title=$(grep '^# .*$' -m 1 "$article_path" | cut -c 2-) [ -z "$title" ] && echo "Article $article_path doesn't have a title" && title=$article_path sed -i'' "// a\
  • $title
  • " index.html echo "Generated article at $article_dst_path" done