post: Add post-date procedure.

* haunt/post.scm (%default-date): New variable.
  (post-date): New procedure.
* haunt/builder/atom.scm (post->atom-entry): Use post-date.
* README.md (Example Configuration): Remove date from default metadata.
This commit is contained in:
David Thompson 2015-04-13 19:40:55 -04:00
parent 3614b3e9b9
commit 3592829387
3 changed files with 13 additions and 5 deletions

View File

@ -29,10 +29,8 @@ Example Configuration
(site #:title "Built with Guile"
#:domain "dthompson.us"
#:default-metadata
`((author . "David Thompson")
(email . "davet@gnu.org")
;; If I'm careless and forget a date, use the UNIX epoch.
(date . ,(make-date 0 0 0 0 1 1 1970 0)))
'((author . "David Thompson")
(email . "davet@gnu.org"))
#:readers (list sxml-reader html-reader)
#:builders (list (blog)
(atom-feed)

View File

@ -51,7 +51,7 @@
(name ,(post-ref post 'author))
,(let ((email (post-ref post 'email)))
(if email `(email ,email) '())))
(updated ,(date->string* (post-ref post 'date)))
(updated ,(date->string* (post-date post)))
(link (@ (href ,(string-append "/" (post-slug post) ".html"))
(rel "alternate")))
(summary (@ (type "html"))

View File

@ -34,6 +34,8 @@
post-metadata
post-ref
post-slug
%default-date
post-date
posts/reverse-chronological
posts/group-by-tag
@ -59,6 +61,14 @@
char-set:whitespace))
"-"))
(define %default-date
(make-date 0 0 0 0 1 1 1970 0)) ; UNIX epoch
(define (post-date post)
"Return the date for POST, or '%default-date' if no date is
specified."
(or (post-ref post 'date) %default-date))
(define (post-time post)
(date->time-utc (post-ref post 'date)))