summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordelta <darkussdelta@gmail.com>2025-09-18 23:00:28 +0200
committerdelta <darkussdelta@gmail.com>2025-09-18 23:00:28 +0200
commit8675aa17bc308361b390c2e02ad409935f5b0e17 (patch)
treebf41130095b4fca0cbfb2957bf045ee2aa5283dd
parent088a18410e43a209a4864bccad5ddb89a7ee1d5d (diff)
add rss feed
-rwxr-xr-x.zs/generate_nav1
-rwxr-xr-x.zs/posthook29
-rwxr-xr-x.zs/rss19
3 files changed, 33 insertions, 16 deletions
diff --git a/.zs/generate_nav b/.zs/generate_nav
index 28289af..0859a42 100755
--- a/.zs/generate_nav
+++ b/.zs/generate_nav
@@ -24,4 +24,5 @@ function normalize(file) {
printf "<li><a href=\"%s\">%s</a></li>", file, name
if (i<NF) print ""
}
+ printf "<li><a href=\"/rss.xml\">[rss]</a></li>", file, name
}'
diff --git a/.zs/posthook b/.zs/posthook
index bcf1d52..79bd071 100755
--- a/.zs/posthook
+++ b/.zs/posthook
@@ -1,19 +1,16 @@
#!/bin/sh
-set -e
+cat > $ZS_OUTDIR/rss.xml <<EOF
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+<channel>
+<title>darkuss' website</title>
+<link>https://darkuss.twoexem.com/</link>
+<description>silly posts for silly people</description>
+<generator>cobbled together bash:tm:</generator>
+<language>en-gb</language>
+<lastBuildDate>$(date -R)</lastBuildDate>
+<atom:link href="https://zserge.com/rss.xml" rel="self" type="application/rss+xml"/>
+EOF
-minify_assets() {
- p="$1"
- t="$2"
-
- find "$p" -type f -name "*.$t" | while read -r file; do
- name="${file#"$p"}"
- name="${name#"/"}"
- minify -o "${p}/${name}" "$file"
- done
-}
-
-if command -v minify > /dev/null; then
- minify_assets "$ZS_OUTDIR" "css"
- minify_assets "$ZS_OUTDIR" "js"
-fi
+./.zs/rss >> $ZS_OUTDIR/rss.xml
+echo "</channel></rss>" >> $ZS_OUTDIR/rss.xml
diff --git a/.zs/rss b/.zs/rss
new file mode 100755
index 0000000..e118172
--- /dev/null
+++ b/.zs/rss
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+for f in ./blog/*.md ; do
+ d="$(zs var "$f" date)"
+ if [ ! -z $d ] ; then
+ timestamp="$(date --date "$(echo "$d" | awk -F- '{print $3"-"$2"-"$1}')" +%s)"
+ url="$(zs var "$f" url)"
+ title="$(zs var "$f" title)"
+ desc="$(zs var "$f" description)"
+ echo $timestamp \
+ "<item>" \
+ "<title>$title</title>" \
+ "<link>http://darkuss.twoexem.com/$url</link>" \
+ "<description>$desc</description>" \
+ "<pubDate>$(date --date @$timestamp -R)</pubDate>" \
+ "<guid>http://darkuss.twoexem.com/$url</guid>" \
+ "</item>"
+ fi
+done | sort -r -n | cut -d' ' -f2-