aboutsummaryrefslogtreecommitdiff
path: root/org/blog/generate-html.scm
diff options
context:
space:
mode:
authornathan <nathansmith@disroot.org>2025-08-10 15:02:05 -0600
committernathan <nathansmith@disroot.org>2025-08-10 15:02:05 -0600
commit3e36028d99b21d8946085be6b3597b63d1ed14d1 (patch)
tree9dc0c1ea8f22394243097205dfc10cf829ad48ae /org/blog/generate-html.scm
parent0880780d5744d346ad44f4552cd25f8f5169a940 (diff)
Better blog format
Diffstat (limited to 'org/blog/generate-html.scm')
-rwxr-xr-xorg/blog/generate-html.scm74
1 files changed, 0 insertions, 74 deletions
diff --git a/org/blog/generate-html.scm b/org/blog/generate-html.scm
deleted file mode 100755
index c461aba..0000000
--- a/org/blog/generate-html.scm
+++ /dev/null
@@ -1,74 +0,0 @@
-#! /usr/bin/guile \
--e main -s
-!#
-
-(use-modules (sxml simple))
-
-;; Loads an entire text file into a string
-(define (read-entire-file file)
- (call-with-input-file file
- (lambda (fp)
- (letrec ((read-characters
- (lambda (fp)
- (let ((character (read-char fp)))
- (if (eof-object? character)
- ""
- (string-append (string character)
- (read-characters fp)))))))
- (read-characters fp)))))
-
-;; Make a link for the article
-(define (make-article-list-link article)
- (let ((title (cadr (list-ref article 0)))
- (name (cadr (list-ref article 2))))
- (string-append " <li><a href=\"#" name "\">" title "</a></li>\n")))
-
-;; Reads the article file and formats some stuff out
-(define (get-raw-article file)
- (letrec ((article (read-entire-file file))
- (article-open (string-contains article "<article>"))
- (article-close (string-contains article "</article>")))
- (substring article (+ article-open 9) article-close)))
-
-;; Makes a card for the article
-(define (make-article-card 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))))
- (string-append
- "<br />\n"
- "<hr />\n"
- "<div class=\"container\">\n"
- " <div class=\"article-header\">\n"
- " <h2 id=\"" name "\">" title "</h2>--- " pub-date "\n"
- " </div>\n"
- (get-raw-article file) "\n"
- "</div>\n")))
-
-;; Generates a html blog from xml data
-(define (generate-html)
- (let ((template (read-entire-file "template.xhtml"))
- (article-list "<ul>\n")
- (article-cards "")
- (articles (call-with-input-file "articles.xml"
- (lambda (fp)
- (xml->sxml fp)))))
- (for-each (lambda (article)
- (when (list? article)
- ;; Add a article link
- (set! article-list
- (string-append article-list
- (make-article-list-link
- (cddr article))))
- ;; Add article card
- (set! article-cards
- (string-append article-cards
- (make-article-card
- (cddr article))))))
- (cdr (cadr articles)))
- (set! article-list (string-append article-list "</ul>\n"))
- (format #t template article-list article-cards)))
-
-(define (main args)
- (generate-html))