From 55265d4f444ab0c9c8768cd9260de3711332cd59 Mon Sep 17 00:00:00 2001 From: mika Date: Thu, 17 Sep 2026 20:37:10 +0200 Subject: [PATCH] atom feed support --- .gitignore | 2 +- Makefile | 32 +++++++++++++++++-------- atom.xml | 20 ---------------- feed.atom | 20 ++++++++++++++++ kethel2/aggregate.c | 58 +++++++++++++++++++++++++++++---------------- kethel2/mkpage.c | 24 +++++++++++++------ thoughts/data.tsv | 4 ++-- thoughts/feed.html | 12 ++++++++++ 8 files changed, 111 insertions(+), 61 deletions(-) delete mode 100644 atom.xml create mode 100644 feed.atom create mode 100644 thoughts/feed.html diff --git a/.gitignore b/.gitignore index 477d3484cddaf42254fd221ac12fbf43c0f17763..4d80dda1baf62feb1ea2f12dfb295e898418ac7b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,5 @@ /aggregate /out/**/* -/tmp/**/* +/obj/**/* /publish diff --git a/Makefile b/Makefile index 0113b20c0c5927aef3027a6816df334204f9967a..89f6d7773a10a652eeee20f6a6af82538d1f3f1f 100644 --- a/Makefile +++ b/Makefile @@ -11,38 +11,50 @@ serve: all darkhttpd ./darkhttpd out darkhttpd: + @mkdir -p out obj curl $(DEVSERVER) > darkhttpd.c $(CC) -O2 darkhttpd.c -o darkhttpd mkpage: kethel2/mkpage.c include/stdhead.html include/stdnav.html include/stdfooter.html - mkdir -p ./tmp - $(CC) $(CFLAGS) -c kethel2/mkpage.c -o tmp/mkpage.o - $(CC) $(CFLAGS) tmp/mkpage.o -o mkpage + @mkdir -p out obj + $(CC) $(CFLAGS) -c kethel2/mkpage.c -o obj/mkpage.o + $(CC) $(CFLAGS) obj/mkpage.o -o mkpage aggregate: kethel2/aggregate.c - $(CC) $(CFLAGS) -c kethel2/aggregate.c -o tmp/aggregate.o - $(CC) $(CFLAGS) tmp/aggregate.o -o aggregate + @mkdir -p out obj + $(CC) $(CFLAGS) -c kethel2/aggregate.c -o obj/aggregate.o + $(CC) $(CFLAGS) obj/aggregate.o -o aggregate # TODO: manage statics in a better way than `cp -r` #static: # cp -r static out/static # list of all pages -pages: out/index.html out/colophon.html out/thoughts.html out/blog/index.html out/blog/helloworld.html static +pages: out/index.html out/colophon.html out/thoughts.html out/blog/index.html out/blog/helloworld.html out/feed.atom out/index.html: index.html mkpage + @mkdir -p out ./mkpage index.html out/index.html out/colophon.html: colophon.html mkpage + @mkdir -p out ./mkpage colophon.html out/colophon.html out/thoughts.html: thoughts/data.tsv thoughts/item.html thoughts/index.html aggregate mkpage - ./aggregate thoughts/data.tsv thoughts/item.html thoughts/index.html tmp/thoughts.o.html - ./mkpage tmp/thoughts.o.html out/thoughts.html + @mkdir -p out obj + ./aggregate thoughts/data.tsv thoughts/item.html thoughts/index.html obj/thoughts.o.html + ./mkpage obj/thoughts.o.html out/thoughts.html out/blog/index.html: blog/data.tsv blog/index.html blog/item.html aggregate mkpage - ./aggregate blog/data.tsv blog/item.html blog/index.html tmp/blogroll.o.html - ./mkpage tmp/blogroll.o.html out/blog/index.html + @mkdir -p out obj + ./aggregate blog/data.tsv blog/item.html blog/index.html obj/blogroll.o.html + ./mkpage obj/blogroll.o.html out/blog/index.html out/blog/helloworld.html: blog/helloworld.html mkpage + @mkdir -p out ./mkpage blog/helloworld.html out/blog/helloworld.html + +out/feed.atom: thoughts/data.tsv + @mkdir -p out obj + ./aggregate thoughts/data.tsv thoughts/feed.html NONE obj/thoughts.o.atom + ./mkpage feed.atom out/feed.atom diff --git a/atom.xml b/atom.xml deleted file mode 100644 index 63ecc67723651a35baf0d58d547fa95100a1b143..0000000000000000000000000000000000000000 --- a/atom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - mikadev.nl - - - - - - mika - https://m1kadev.nl/me.html - - tag:february.m1kadev.nl,2026/www/feed#atom - - mkpage.c - - - - - diff --git a/feed.atom b/feed.atom new file mode 100644 index 0000000000000000000000000000000000000000..9c19fe027e86d45fb810bbcd89b1bfae3761dfe9 --- /dev/null +++ b/feed.atom @@ -0,0 +1,20 @@ + + + m1kaposting + + the greatest <entry> items of a generation + + + + Mika 2026, CC-BY-4.0 + + mika + https://m1kadev.nl/me.html + + tag:february.m1kadev.nl,2026:feed + + Kethel 2 + + + + diff --git a/kethel2/aggregate.c b/kethel2/aggregate.c index b8ca2dec8d83838924c46c1f2a5c4f767ccc6b1a..dda915eb899149edba2c9d3e6309a6e2ceac6830 100644 --- a/kethel2/aggregate.c +++ b/kethel2/aggregate.c @@ -1,3 +1,4 @@ +#include <_stdio.h> #include #include #include @@ -31,10 +32,9 @@ int strfind(const char* haystack, char needle) { return i; } -void write_item_data(char* restrict row, const char* restrict template, FILE* out) { +void write_item_data(char* restrict row, const char* restrict template, FILE* out, const char* restrict pref) { char prettyDate[64]; char* tok = strtok(row, "\t"); - const char* pref = "item-"; char* label = malloc(strlen(pref) + strlen(tok) + 2); sprintf(label, "%s%s", pref, tok); char* data[8]; @@ -44,7 +44,6 @@ void write_item_data(char* restrict row, const char* restrict template, FILE* ou struct tm bdate; strptime(date, "%Y-%m-%dT%H:%M:%S%z", &bdate); strftime(prettyDate, 64, "%H:%M", &bdate); - //fprintf(stderr, "%s\n", prettyDate); tok = strtok(NULL, "\t"); while (tok != NULL) { @@ -62,14 +61,16 @@ void write_item_data(char* restrict row, const char* restrict template, FILE* ou const char magic[] = " + + + +