* tekuti/config.scm (*comments-open-window*): New config, indicating
seconds for which to keep comments open.
* tekuti/page-helpers.scm (post-editing-form): Expose comments closed
date feature.
* tekuti/page.scm (page-new-comment): Oops -- we were missing a
server-side comments-open check!
* tekuti/post.scm (*post-spec*): Serialize comments-closed-timestamp.
(post-comments-open?): Return false if we are after the
comments-closed-timestamp.
(post-comments-closed-timestamp): New accessor.
(munge-post): Write comments-closed-timestamp.
(parse-post-data): Parse comments-closed-timestamp from form data.
* tekuti/page-helpers.scm (html-doctype): Relax to HTML doctype.
(define-tag-set, void-element?, template-element?, raw-text-element?)
(escapable-raw-text-element?, foreign-element?, make-char-quotator)
(attribute-value-empty?, attribute-value-needs-quotes-chars)
(attribute-value-needs-quotes?, print-attribute-value/quoted)
(print-text/quoted, shtml->html): Emit HTML by default. This will
allow documents to contain <script> tags which themselves have &, <,
and so on.
As a side effect of this change, any pending posts in your repository
that are in "draft" status will effectively move into the new "draft"
state, which means they can be reached by their URL. That's not a big
deal though because those URLs are not trivial to guess.
* tekuti/page-helpers.scm (post-editing-form): Add radio button to
choose post status.
* tekuti/post.scm (post-public?, post-draft?, post-private?): New
accessors for post status.
(post-from-key): Add #:allow-draft? keyword argument.
* tekuti/page.scm (page-show-post): Allow direct access to draft posts.
* tekuti/page-helpers.scm (ensure-uri): Rename from ensure-public-uri.
A URI is absolute by definition.
(ensure-uri-reference): New helper. Requires git guile.
(respond): Use ensure-URI-reference to get the reference.
(atom-header, atom-entry): Use ensure-uri.
* tekuti/page.scm (atom-feed-from-posts): Pass the URI scheme from the
request-uri when reconstructing
* tekuti/config.scm (*public-scheme*): New config variable, defaulting
to http.
* tekuti/page.scm (make-post-key): Downcase, to cope with uri-encode
from Guile changing from lower-case hexidecimals to upper-case.
Otherwise older post keys wouldn't work...
* tekuti/git.scm (git-rev-parse): Try to read the ref ourselves, first.
Fall back to using git if that doesn't work (for example, if it's a
packed ref).