diff options
Diffstat (limited to 'org/blog/generate-html.scm')
-rwxr-xr-x | org/blog/generate-html.scm | 74 |
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)) |