From 15a0beed6845bf8d6fe31ecc655c7d06ba95eb70 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Fri, 1 Mar 2024 01:25:55 +0100 Subject: Remove fix-dates.sh manual process. Signed-off-by: Denis 'GNUtoo' Carikli --- website/readers/wordpress-markdown.scm | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 website/readers/wordpress-markdown.scm (limited to 'website/readers/wordpress-markdown.scm') diff --git a/website/readers/wordpress-markdown.scm b/website/readers/wordpress-markdown.scm new file mode 100644 index 0000000..3c3f282 --- /dev/null +++ b/website/readers/wordpress-markdown.scm @@ -0,0 +1,54 @@ +;;; Haunt --- Static site generator for GNU Guile +;;; Copyright © 2016 Erik Edrosa +;;; +;;; 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 . + +;;; Commentary: +;; +;; CommonMark post reader. +;; +;;; Code: + +(define-module (website 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)) + +(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)))) + +(register-metadata-parser! 'date string->custom-date*) + +(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))))))) -- cgit v1.2.3