You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
817 B

#!/bin/sh
set -e
if [ ! $# = 1 ]; then
printf >&2 "Usage: %s <path> [ext]\n" "$(basename "$0")"
exit 0
fi
_path="$1"
ext="${2:-md}"
if [ ! -d "$_path" ]; then
printf >&2 "error: path %s not found\n" "$_path"
exit 1
fi
find "$_path" -type f -name "*.$ext" | sort -r | while read -r file; do
name="${file#"$_path"}"
name="${name#"/"}"
name="${name%.*}"
# skip indices
if [[ "$name" == *index ]]; then continue; fi
title="$(zs vars "$file" title)"
if [ -z "$title" ]; then
title="$name"
fi
postdate="$(zs vars "$file" postdate)"
if [ -z "$postdate" ]; then
inputdate=$(basename $file | cut -d- -f1-3)
postdate=$(date -j -f "%Y-%m-%d" "$inputdate" "+%h %Y" || true)
fi
echo "- <span>$postdate</span> [$title](${name}.html)"
done