diff --git a/bin/mdpage_plain.sh b/bin/mdpage_plain.sh new file mode 100755 index 0000000..23be987 --- /dev/null +++ b/bin/mdpage_plain.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +set -e + +render() { + NOTITLE="$1" + LASTLINE="" + TITLE="" + + while read -r line ; do + if [[ "$line" =~ ^Subject:\ .*$ ]]; then + TITLE="${line#* }" + fi + if [[ "$line" =~ ^X-Date:\ .*$ ]]; then + DATE="${line#* }" + fi + if [[ ! "$line" =~ ^[^\ ]*:\ .*$ ]]; then + LASTLINE="$line" + break + fi + done + + { + [ "$NOTITLE" == "0" ] && echo "# $TITLE"; + echo "$LASTLINE"; + cat + } | awk -f ./bin/markdown.awk + +} + +if [ -t 0 ]; then + echo "Missing Markdown body" + exit 1 +fi + +render "$NOTITLE" diff --git a/bin/rss.sh b/bin/rss.sh index 9392900..bf90e5f 100755 --- a/bin/rss.sh +++ b/bin/rss.sh @@ -67,16 +67,18 @@ list_items() { } render_item() { - base_url="$1" - item="$2" + DIR="$1" + base_url="$2" + item="$3" site_url="$(echo "$base_url"| sed 's#\(.*//.*\)/.*#\1#')" date=$(echo "$item"|awk '{print $1}') - url=$(echo "$item"|awk '{print $2}') + page=$(echo "$item"|awk '{print $2}') title=$(echo "$item"| cut -d ' ' -f 3- ) - guid="$base_url/$(echo "$url" | sed 's#^/##')" + guid="$base_url/$(echo "$page" | sed 's#^/##')" + content=$(cat $DIR/$page/note.md | ./bin/mdpage_plain.sh) cat <<-EOF @@ -84,16 +86,18 @@ render_item() { $guid $(date_to_rfc_822 "$date") $title + EOF } render_items() { - base_url="$1" + DIR="$1" + base_url="$2" while read -r i - do render_item "$1" "$i" + do render_item "$DIR" "$base_url" "$i" done } @@ -118,4 +122,4 @@ render_feed() { EOF } -list_items "$1" | sort | render_items "$2$3" | render_feed "$2" "Konstantin Nazarov" "Konstantin Nazarov's blog" +list_items "$1" | sort | tail -10 | render_items "$1" "$2$3" | render_feed "$2" "Konstantin Nazarov" "Konstantin Nazarov's blog"