diff options
| -rw-r--r-- | haunt/haunt.scm | 10 | ||||
| -rw-r--r-- | haunt/jakob/builder/static-pages.scm | 45 |
2 files changed, 7 insertions, 48 deletions
diff --git a/haunt/haunt.scm b/haunt/haunt.scm index 152294b..14ac2bf 100644 --- a/haunt/haunt.scm +++ b/haunt/haunt.scm @@ -15,6 +15,7 @@ ;;; <http://www.gnu.org/licenses/>. (use-modules (haunt builder assets) + (haunt builder flat-pages) (haunt post) (haunt site) (jakob builder atom) @@ -22,8 +23,8 @@ (jakob builder blogroll) (jakob builder htaccess) (jakob builder outbox) - (jakob builder static-pages) (jakob reader html-prime) + (jakob reader sxml) (srfi srfi-19) (srfi srfi-26)) @@ -42,7 +43,7 @@ #:default-metadata '((author . "Jakob L. Kreuze") (email . "zerodaysfordays@sdf.lonestar.org")) - #:readers (list html-reader-prime) + #:readers (list html-reader-prime sxml-reader) #:builders (list (atom-feed #:max-entries 1024) (blog) @@ -53,5 +54,8 @@ (429 . "/pages/status-429.html") (500 . "/pages/status-500.html"))) (outbox) - (static-pages) + (flat-pages "pages" + #:template (lambda (_site _title content) + content) + #:prefix "pages/") (static-directory "static"))) diff --git a/haunt/jakob/builder/static-pages.scm b/haunt/jakob/builder/static-pages.scm deleted file mode 100644 index 98817a6..0000000 --- a/haunt/jakob/builder/static-pages.scm +++ /dev/null @@ -1,45 +0,0 @@ -;;; Copyright © 2019 - 2020 Jakob L. Kreuze <zerodaysfordays@sdf.org> -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 3 of the -;;; License, or (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this program. If not, see -;;; <http://www.gnu.org/licenses/>. - -(define-module (jakob builder static-pages) - #:use-module (haunt artifact) - #:use-module (haunt html) - #:use-module (ice-9 ftw) - #:use-module (jakob builder blog) - #:use-module (srfi srfi-1) - #:export (static-pages)) - -(define* (static-pages) - (lambda (site posts) - (define enter? (const #t)) - - (define (leaf file-name stat memo) - (if (string-suffix? ".sxml" file-name) - (let* ((dest (string-drop-right file-name (string-length ".sxml"))) - (dest (string-append dest ".html")) - (name (first (string-split (basename dest) #\.))) - (sxml (primitive-load file-name)) - (contents sxml)) - (cons (serialized-artifact dest contents sxml->html) memo)) - (cons #f memo))) - - (define (noop file-name stat result) - result) - - (define (err file-name stat errno result) - (error "file processing failed with errno: " file-name errno)) - - (filter identity (file-system-fold enter? leaf noop noop noop err '() "pages")))) |