diff options
| author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2025-06-12 16:43:34 +0200 |
|---|---|---|
| committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2025-06-15 01:30:32 +0200 |
| commit | e614e7a8d8976f5f06d5dd8187c9f25baa1c2212 (patch) | |
| tree | faae02facdff52170387e64db800dd44fc2e2398 /modules/readers/wordpress-markdown.scm | |
| parent | 038b435769ed8c527ecfb7948f589d7d0b8022c7 (diff) | |
| download | haunt-blog-e614e7a8d8976f5f06d5dd8187c9f25baa1c2212.tar.gz haunt-blog-e614e7a8d8976f5f06d5dd8187c9f25baa1c2212.tar.bz2 haunt-blog-e614e7a8d8976f5f06d5dd8187c9f25baa1c2212.zip | |
Move scheme modules inside modules/.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'modules/readers/wordpress-markdown.scm')
| -rw-r--r-- | modules/readers/wordpress-markdown.scm | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/modules/readers/wordpress-markdown.scm b/modules/readers/wordpress-markdown.scm new file mode 100644 index 0000000..54d64ab --- /dev/null +++ b/modules/readers/wordpress-markdown.scm @@ -0,0 +1,59 @@ +;;; Haunt --- Static site generator for GNU Guile +;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> +;;; +;;; This file is part of Haunt. +;;; +;;; Haunt 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. +;;; +;;; Haunt 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 Haunt. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: +;; +;; CommonMark post reader. +;; +;;; Code: + +(define-module (modules readers wordpress-markdown) + #:use-module (commonmark) + #:use-module (haunt post) + #:use-module (haunt reader) + #:use-module (haunt utils) + #:use-module (ice-9 match) + #:use-module (ice-9 rdelim) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-19) + #:export (wordpress-markdown-reader)) + +(fluid-set! %default-port-encoding "UTF-8") + +(define (string->custom-date* str) + "Convert STR, a string in ISO 8601 format or the default format, into a +SRFI-19 date object." + (or (catch 'misc-error + (lambda _ (string->date str "~Y-~m-~dT~H:~M:~S~z")) + (const #f)) + (catch 'misc-error + (lambda _ (string->date str "~Y~m~d ~H:~M")) + (const #f)))) + +(define (string->string* str) str) +(register-metadata-parser! 'date string->custom-date*) +(register-metadata-parser! 'authors string->string*) +(register-metadata-parser! 'license string->string*) + +(define wordpress-markdown-reader + (make-reader (make-file-extension-matcher "md") + (lambda (file) + (call-with-input-file file + (lambda (port) + (values (read-metadata-headers port) + (commonmark->sxml port))))))) |
