summaryrefslogtreecommitdiff
path: root/haunt
Commit message (Collapse)AuthorAgeFilesLines
* builder: blog: Remove (haunt page) import.David Thompson2021-03-181-1/+0
|
* builder: rss: Migrate to artifacts.David Thompson2021-03-181-17/+22
|
* rss: Made RSS builder more W3-validation compliantPhilip K2021-03-181-28/+41
|
* Create a unified type for build artifacts.David Thompson2021-03-185-31/+105
| | | | Deprecate <page> and <asset>.
* utils: Remove leading "/" in join-file-name-components.David Thompson2021-03-181-1/+1
|
* site: Add files ending in "~" to the default file filter.David Thompson2021-03-181-1/+1
| | | | They are Emacs temp files.
* reader: Follow symlinks in read-posts.David Thompson2021-03-181-1/+1
|
* atom: Change date format from ISO-8601 to RFC-3339.Philip K2019-08-151-2/+2
| | | | * haunt/builder/atom.scm (date->string*): Format in RFC-3339 style.
* atom: Add 'id' attribute to feed and entries.David Thompson2019-06-281-35/+46
|
* site: Add scheme field.David Thompson2019-06-281-2/+7
| | | | | * haunt/site.scm (<site>)[scheme]: New field. (site): Add #:scheme keyword argument.
* reader: html: Add support for multiple top-level elements.Jakob L. Kreuze2019-05-211-2/+11
| | | | | Currently, if given a file containing more than one top-level elements, 'read-html-post will only return the first.
* reader: skribe: Add additional HTML 5 tags.humanitiesNerd2019-01-051-2/+6
| | | | * haunt/skribe/utils.scm (h5 h6 section nav aside): New procedures.
* atom: links should use href attribute, not url attribute.Christopher Lemmer Webber2018-11-291-1/+1
| | | | | * haunt/builder/atom.scm (post->atom-entry): Switch url attribute to href attribute.
* Add RSS support.Christopher Lemmer Webber2018-11-251-0/+107
| | | | | * haunt/builder/rss.scm: New file with support for RSS feeds. * Makefile.am: Add it.
* atom: Add support for enclosures.David Thompson2018-11-181-2/+102
| | | | | | | | | | | | The most notable use-case here is allowing Haunt to be used for podcasting. Thanks to Christopher Lemmer Webber for wanting to use Haunt to build their podcast Atom feed! * haunt/builder/atom.scm (<enclosure>): New record type. (make-enclosure, enclosure?, enclosure-title, enclosure-url, enclosure-extra, enclosure-mime-type, parse-enclosure): New procedures. (post->atom-entry): Render enclosures.
* post: Add post-ref-all procedure.David Thompson2018-11-181-0/+8
| | | | * haunt/post.scm (post-ref-all): New procedure.
* post: Fix export for register-metadata-parser!David Thompson2018-11-181-1/+1
| | | | | * haunt/post.scm: Fix typo preventing other modules from using register-metadata-parser!
* serve: Fix 'file-extension' so that the right MIME type is chosen.Ludovic Courtès2017-12-211-10/+4
| | | | | | | | Reported by sirgazil at <https://lists.gnu.org/archive/html/guile-user/2017-12/msg00070.html>. * haunt/serve/mime-types.scm (%file-ext-regexp): Remove. (file-extension): Rewrite using 'string-rindex'.
* html: Stop escaping apostrophes.David Thompson2017-11-011-1/+0
| | | | | | | | | | | This was breaking the rendering of documents like: '(p (@ (onclick "javascriptFunction('argmunent')"))) The single quotes would be escaped and then the onclick handler wouldn't work at all. * haunt/html.scm (%escape-codes): Remove apostrophe escape code.
* ui: serve: Fix deprecation warning.Jelle Licht2017-10-311-0/+1
| | | | * haunt/ui/serve.scm: Add '(ice-9 threads)' module import.
* Don't ignore a specified non-default port in 'haunt serve'.Sudarshan S Chawathe2017-09-031-1/+1
| | | | | Without this patch 'haunt serve' claims to use the specified non-default port, but in fact uses the default 8080 instead.
* builder: atom: Provide a full URL for the "self" link.Ludovic Courtès2016-11-011-1/+2
| | | | | * haunt/builder/atom.scm (atom-feed): Use SITE's domain to generate a full URL for the "self" link.
* reader: Add commonmark support.Erik Edrosa2016-08-021-0/+37
| | | | | | * haunt/reader/commonmark.scm: New file. * Makefile.am (SOURCES): Add it. * configure.ac: Check for guile-commonmark.
* serve: Catch exceptions when rebuilding site.David Thompson2016-04-211-1/+16
| | | | | | | | Now 'haunt serve --watch' won't crash when you put some bad code in a post! * haunt/ui/server.scm (call-with-error-handling): New procedure. (watch): Wrap build-site call in call-with-error-handling form.
* post: Allow posts to set their own slugs.Christopher Allan Webber2016-04-121-5/+7
| | | | | | * haunt/post.scm (post-slug): Allow posts to set their own slug field and use that if available. Otherwise default to previous title-derived slug behavior.
* builder: Reverse prefix and slash append order in generating post paths.Christopher Allan Webber2016-04-122-2/+2
| | | | | | | * haunt/builder/blog.scm (ugly-default-collection-template): * haunt/builder/blog.scm (post->atom-entry): Reverse appending of prefix and slash in generation of paths for blog entries.
* builder: atom: Allow atom feeds to correctly set the blog prefix.Christopher Allan Webber2016-04-081-6/+12
| | | | | * haunt/builder/atom.scm (post->atom-key, atom-feed, atom-feeds-by-tag): Add #:blog-prefix keyword.
* builder: blog: Set default values for 'theme' keywords.Christopher Allan Webber2016-04-021-33/+37
| | | | | | | | | | Previously if a user did not provide a value for any of the theme keyword arguments, there would be an error. Instead, provide defaults from ugly-theme. * haunt/builder/blog.scm: (ugly-default-layout, ugly-default-post-template, ugly-default-collection-template): New variables. (theme): New defaults to keyword arguments.
* post: Allow dashes in slugs.David Thompson2016-04-021-1/+4
| | | | | * haunt/post.scm (char-set:slug): New variable. (post-slug): Use slug char set.
* skribe: utils: Export ol.David Thompson2016-04-021-1/+1
| | | | * haunt/skribe/utils.scm: Export ol.
* skribe: Add copyright information for Ludovic Courtès.Christopher Allan Webber2016-02-151-0/+2
| | | | | | Trace origin back to Skribilo. * haunt/skribe.scm: Added comments and copyright headers.
* reader: texinfo: Remove unused import.David Thompson2015-11-101-2/+0
|
* reader: Add texinfo support.David Thompson2015-10-151-0/+44
| | | | | | | * haunt/reader/texinfo.scm: New file. * Makefile.am (SOURCES): Add it. * example/haunt.scm: Activate texinfo reader. * example/posts/quux.scm: New file.
* post: Add read-metadata-headers procedure.David Thompson2015-10-152-16/+21
| | | | | | | | * haunt/post.scm (read-metadata-headers): New procedure. * haunt/reader.scm (read-html-post): Reimplement using 'read-metadata-headers'. * tests/post.scm (%tzoffset): New variable. ("read-metadata-headers"): New test.
* utils: Clean up and add tests.David Thompson2015-10-141-4/+18
| | | | | | | | | | | | | * haunt/utils.scm (flat-map, string-split-at): Add docstring. (file-name-components): Adjust slightly to handle "/". (join-file-name-components): Use prefix string join grammar. (absolute-file-name): Add docstring. * test-env.in: New file. * tests/utils.scm: New file. * Makefile.am (TESTS, TEST_EXTENSIONS, SCM_LOG_COMPILER, AM_SCM_LOG_FLAGS): New variables. * configure.ac: Add test-env pre-processed file. * build-aux/test-driver: New file.
* Add support for Skribe document format.David Thompson2015-10-123-0/+211
| | | | | | | | | | | | * haunt/skribe.scm: New file. * haunt/skribe/utils.scm: New file. * haunt/reader/skribe.scm: New file. * configure.ac: Check for guile-reader. * Makefile.am (SOURCES): Add Skribe modules when guile-reader is available. * example/haunt.scm: Include Skribe reader. * example/posts/baz.skr: New file. * README.md ("Requirements"): Mention guile-reader as optional dependency.
* utils: Add make-user-module.David Thompson2015-10-121-1/+10
| | | | * haunt/utils.scm (make-user-module): New procedure.
* ui: Add CWD to Guile load path.David Thompson2015-10-121-0/+3
| | | | * haunt/ui.scm (haunt-main): Add CWD to Guile load path.
* builder: blog: Export render-post and render-collection.David Thompson2015-10-081-0/+2
| | | | * haunt/builder/blog.scm: Export render-post and render-collection.
* html: Remove 'raw' element type.David Thompson2015-10-022-4/+4
| | | | | | * haunt/html.scm (sxml->html): Remove 'raw' element renderer. * haunt/reader.scm (read-html-post): Parse to SXML, rather than reading a raw string.
* builder: blog: Export "theme-collection-template".Ricardo Wurmus2015-09-041-1/+1
| | | | | * haunt/builder/blog.scm: Export "theme-collection-template", not "theme-list-template".
* ui: serve: Fix auto-rebuilding logic.David Thompson2015-08-081-16/+25
| | | | | | * haunt/ui/serve.scm (watch): Remove 'ignore-dirs' argument. Add 'check-file?' and 'check-dir?' arguments. (haunt-serve): Use new 'watch' procedure.
* blog: Export with-layout.David Thompson2015-08-081-0/+1
|
* asset: Filter out assets that do not pass the site file filter.David Thompson2015-08-082-8/+11
| | | | | * haunt/asset.scm (directory-assets): Add 'keep?' argument. (static-directory): Use site file filter.
* site: Change post-filter to file-filter.David Thompson2015-08-082-24/+25
| | | | | | | | | | | | | | | 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.
* builder: blog: Add concept of "collections".David Thompson2015-08-061-15/+19
| | | | | | | | | | | | | | | | 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.
* builder: blog: Export date->string*.David Thompson2015-08-051-0/+2
| | | | * haunt/builder/blog.scm: Export date->string*.
* site: Don't crash if there is no posts directory.David Thompson2015-08-051-4/+6
| | | | | * haunt/site.scm (build-site): Test for the existence of posts directory.
* site: Update default file filter.David Thompson2015-08-051-1/+1
| | | | | * haunt/site.scm (default-file-filter): Ignore files that begin with "." or "#".
* ui: serve: Add --watch option.David Thompson2015-08-031-3/+49
| | | | | | | * 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.