summaryrefslogtreecommitdiff
path: root/http/src
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-06-12 10:16:09 +0100
committerJoe Carstairs <me@joeac.net>2026-06-12 10:16:09 +0100
commite10f74c5b696c836eb39f569932190896dec926a (patch)
tree0442306b120b7e0dd33bab7e715f528b9b3e45e3 /http/src
parente2b8cdbce3e441940215d313a321bc6f13309d29 (diff)
http: adds blog index page
Diffstat (limited to 'http/src')
-rw-r--r--http/src/blog.upphtml78
1 files changed, 78 insertions, 0 deletions
diff --git a/http/src/blog.upphtml b/http/src/blog.upphtml
new file mode 100644
index 0000000..4b7abf7
--- /dev/null
+++ b/http/src/blog.upphtml
@@ -0,0 +1,78 @@
+#!
+PAGE="$1"
+SITE_URL="$2"
+export TITLE="Joe Carstairs"
+export DESCRIPTION="Joe Carstairs' personal website"
+
+POSTS="$(ls "${SRC}/blog/" | grep "^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\.blog.upphtml$")"
+set --
+for post in $POSTS
+do
+ this_year="$( echo "$post" | cut -c1-4 )"
+ has_this_year=0
+ for year in $@
+ do
+ if [ "$this_year" = "$year" ]
+ then
+ has_this_year=1
+ break
+ fi
+ done
+ if [ $has_this_year -eq 0 ]
+ then
+ set -- $@ "$this_year"
+ fi
+done
+YEARS="$@"
+
+pp "${SHARE}"/components/meta.upphtml
+#!
+
+<main>
+
+<section class='h-feed'>
+
+<h1>My blog</h1>
+
+<aside>
+<p>This blog is written by <a class='p-author h-card' href='/'>Joe Carstairs</a>.</p>
+<p hidden><a class='u-url' href='${SITE_URL}/blog'>Permalink</a></p>
+</aside>
+
+<section>
+<p><a href='/blog/subscribe'>How to subscribe to this blog</a></p>
+</section>
+
+#!
+for year in $YEARS; do
+#!
+<h2>${year}</h2>
+
+<ul>
+
+#!
+for post in $POSTS; do if [ "$(echo "${post}" | cut -c1-4)" = "$year" ]; then
+title="$(grep "^export TITLE=" "${SRC}/blog/${post}" | cut -c15-)"
+title="${title::${#title}-16}"
+date_published="$(echo "${post}" | cut -c1-10)"
+href="${SITE_URL}/blog/$(echo "$post" | cut -c1-10).html"
+#!
+
+<li class='h-entry'>
+<h3><a class='u-url p-name' href='${href}'>${title}</a></h3>
+#!
+DATE="${date_published}" CLASS="dt-published" pp "${SHARE}/components/formatted_date.upphtml"
+#!
+</li>
+
+#!
+fi; done
+#!
+
+</ul>
+
+#!
+done
+#!
+
+</section>