Genericized name because the predicate procedure may be used on any
file, not just posts.
* haunt/site.scm (<site>)[post-filter]: Delete.
[file-filter]: New field.
(site): Replace #:post-filter with #:file-filter.
(build-site): Use 'site-post-filter'.
(make-file-name-filter): Delete.
(make-file-filter): New procedure.
(default-file-name-filter): Delete.
(default-file-filter): New procedure.
* haunt/reader.scm (read-posts): Flip predicate around.
Rather than having a hardcoded index page, a blog now accepts a variable
number of "collection" tuples that describe the page title, file name,
and the filter procedure for the posts that will appear on that page.
* haunt/builder/blog.scm (<theme>) [list-template]: Delete.
[collection-template]: New field.
(theme-list-template): Delete.
(theme-collection-template): New accessor.
(make-theme): Replace #:list-template with #:collection-template.
(render-list): Delete.
(render-collection): New procedure.
(ugly-theme): Use #:collection-template argument.
(blog): Add #:collections argument.
* haunt/ui/serve.scm (show-help): Add help text for --watch.
(%options): Add --watch option.
(watch): New procedure.
(haunt-serve): DTRT when --watch is specified.
This allows one to ignore files that would otherwise match a reader's
file extension, such as an Emacs temporary file like ".#foo.html".
* haunt/site.scm (<site>)[post-filter]: New field.
(site-posts-filter): New accessor.
(site): Add #:post-filter argument.
(build-site): Pass post filter procedure to 'read-posts'.
(make-file-name-filter, default-file-name-filter): New procedures.
* haunt/reader.scm (read-posts): Add 'ignore?' argument.
* haunt/build/html.scm: Delete it.
* haunt/html.scm: New file.
* Makefile.am (SOURCES): Remove old file. Add new file.
* haunt/builder/atom.scm: Use new module.
* haunt/builder/blog.scm: Likewise.
* haunt/ui/serve.scm: Likewise.
UTF-8 encoded HTML pages are much better than maintaining a giant lookup
table.
* haunt/build/html.scm (%escape-chars): Remove all but the absolutely
necessary escape codes.
* haunt/builder/blog.scm (ugly-theme)[#:layout]: Add UTF-8 meta tag.
* haunt/asset.scm: New file.
* Makefile.am (SOURCES): Add it.
* haunt/site.scm (build-site): Add support for assets.
* haunt/utils.scm (file-name-components, join-file-name-components): New
procedures.
* 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.
Cleaning the build directory failed when a subdirectory existed.
* haunt/utils.scm (clean-directory): Remove.
(delete-file-recursively): New procedure.
* haunt/site.scm (build-site): Use delete-file-recursively.
* haunt/post.scm (%metadata-parsers): New variable. Register parser for
'tags and 'date.
(metadata-parser, register-metadata-parser!, parse-metadata): New
procedures.