aboutsummaryrefslogtreecommitdiff
path: root/blog/generate_feed.scm
diff options
context:
space:
mode:
authornathansmith <nathansmith@posteo.com>2025-05-23 07:43:34 -0600
committernathansmith <nathansmith@posteo.com>2025-05-23 07:43:34 -0600
commit4e749697600bab526b1cf51bcca493f6d31d2e34 (patch)
tree10a0274c96667d1482dd7f07d768feaf518d6187 /blog/generate_feed.scm
parentd194694f31002068868a378d121ed0e2db01c378 (diff)
Almost done with this stupidness
Diffstat (limited to 'blog/generate_feed.scm')
-rwxr-xr-xblog/generate_feed.scm66
1 files changed, 0 insertions, 66 deletions
diff --git a/blog/generate_feed.scm b/blog/generate_feed.scm
deleted file mode 100755
index 8519f0c..0000000
--- a/blog/generate_feed.scm
+++ /dev/null
@@ -1,66 +0,0 @@
-#! /usr/bin/guile \
--e main -s
-!#
-
-(use-modules (sxml simple))
-
-(define site-url "https://shittyweb.org")
-
-;; Generate description from article file
-(define (get-description file)
- (call-with-input-file file
- (lambda (fp)
- (letrec ((read-characters
- (lambda (fp)
- (let ((character (read-char fp)))
- (unless (eof-object? character)
- (display character)
- (read-characters fp))))))
- (display "<![CDATA[\n")
- (read-characters fp)
- (display "]]>\n")))))
-
-;; Generate rss item
-(define (make-item article)
- (let ((title (cadr (list-ref article 0)))
- (name (cadr (list-ref article 2)))
- (pub-date (cadr (list-ref article 4)))
- (file (cadr (list-ref article 6))))
- (format #t "\n <item>\n\
- <title>~a</title>\n\
- <link>~a/blog#~a</link>\n\
- <pubDate>~a</pubDate>\n\
- <description>\n" title site-url name pub-date)
- (get-description file)
- (display " </description>\n")
- (display " </item>\n")))
-
-;; Generate rss feed
-(define (generate-feed)
- ;; Display the rss header
- (format #t "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\
-<rss version=\"2.0\">\n\
- <channel>\n\
- <title>Nathan's shitty blog</title>\n\
- <description>The coffee powered blog of chaos</description>\n\
- <link>~a</link>\n\
- <image>\n\
- <url>~a/images/icon.png</url>\n\
- <title>Nathan's shitty blog</title>\n\
- <link>~a/blog</link>\n\
- </image>\n" site-url site-url site-url)
-
- (call-with-input-file "articles.xml"
- (lambda (fp)
- (let ((articles (xml->sxml fp)))
- (for-each (lambda (article)
- (if (list? article)
- (make-item (cddr article))))
- (cdr (cadr articles))))))
-
- (display " </channel>\n")
- (display "</rss>\n"))
-
-(define (main args)
- (generate-feed))
-