From 204be759d3ae0f7256a7e3db8829a1c921470551 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 2 May 2019 15:53:13 -0400 Subject: Clean up haunt.scm --- haunt.scm | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) (limited to 'haunt.scm') diff --git a/haunt.scm b/haunt.scm index 353abee..5fdfeea 100644 --- a/haunt.scm +++ b/haunt.scm @@ -29,6 +29,29 @@ (srfi srfi-26) (ice-9 match)) +;; Use a temporary reader until my patch makes it into an upstream release. +(define (read-html-post-prime port) + (values (read-metadata-headers port) + (let loop ((ret '())) + (catch 'parser-error + (lambda () + (match (xml->sxml port) + (('*TOP* sxml) (loop (cons sxml ret))))) + (lambda (key . parameters) + (reverse ret)))))) + +(define html-reader-prime + (make-reader (make-file-extension-matcher "html") + (cut call-with-input-file <> read-html-post-prime))) + +;; Replace Haunt's default 'string->date* function with one that recognizes the +;; date format that Org uses. +(define (org-string->date str) + "Convert STR, a string in Org format, into a SRFI-19 date object." + (string->date str "<~Y-~m-~d ~a>")) + +(register-metadata-parser! 'date org-string->date) + (define (static-page title file-name body) (lambda (site posts) (make-page file-name @@ -47,28 +70,6 @@ "projects.html" `((h1 "Projects")))) -;; Replace Haunt's default 'string->date* function with one that recognizes the -;; date format that Org uses. -(define (org-string->date str) - "Convert STR, a string in Org format, into a SRFI-19 date object." - (string->date str "<~Y-~m-~d ~a>")) - -(register-metadata-parser! 'date org-string->date) - -(define (read-html-post-prime port) - (values (read-metadata-headers port) - (let loop ((ret '())) - (catch 'parser-error - (lambda () - (match (xml->sxml port) - (('*TOP* sxml) (loop (cons sxml ret))))) - (lambda (key . parameters) - (reverse ret)))))) - -(define html-reader-prime - (make-reader (make-file-extension-matcher "html") - (cut call-with-input-file <> read-html-post-prime))) - (define %collections `(("Recent Posts" "index.html" ,posts/reverse-chronological))) -- cgit v1.3