title: Haunt 0.3.0 released date: 2024-02-19 10:30:00 tags: haunt, release summary: Haunt 0.3.0 released --- Haunt version 0.3.0 has been released! It’s been just over 2 years since the last release, and many fixes and improvements have been accumulated so this is long overdue! ## About Haunt Haunt is a static site generator that uses the Guile Scheme as its configuration language. It aims to be simple, functional, and extensible. Features include: * Easy blog and Atom/RSS feed generation * Markdown post support * Simple development server for viewing edits before publishing * Purely functional build process * User extensibility ## Notable changes * Added first-class support for publishing Haunt websites via new `(haunt publisher)` module. For starters, publishers for `rsync` and Sourcehut are included. See [the manual](https://files.dthompson.us/docs/haunt/latest/Publishers.html) for more details. * Added `haunt publish` command. See [the manual](https://files.dthompson.us/docs/haunt/latest/Invoking-haunt-publish.html) for more details. * Added the oft-requested “flat pages” builder. Flat pages cover the simple case of converting a tree of files written in some markup language to full web pages. They work great for the more informational parts of a website that don’t require any fancy programming to generate, like an “About me” page. See [the manual](https://files.dthompson.us/docs/haunt/latest/Flat-pages.html) for more details. * Added `post-slug-v2` procedure that fixes problems with the original slug generator. For example, the original `post-slug` transforms `0.3.0` to `030` while `post-slug-v2` transforms it to `0-3-0`. Unfortunately, the original `post-slug` is effectively set in stone because changing it would break existing URLs upon upgrade. Users can opt-in to the new slug generator by adding `#:make-slug post-slug-v2` to their `site` arguments in `haunt.scm`. * Added redirects builder which generates HTML pages that perform client-side redirects. Useful for cases when you don’t have control over web server configuration or just want to have more “configuration as code”. This builder will definitely come in handy if you choose to upgrade to `post-slug-v2`. See [the manual](https://files.dthompson.us/docs/haunt/latest/Redirects.html) for more details. * Added collection pagination support to blog builder. * `haunt serve --watch` reloads user Scheme modules when they change on disk. * Added `--host` option to `haunt serve`. * `post-time` now returns a fallback value if there is no timestamp on the post rather than `#f`. * Added `application/wasm` MIME type support to `haunt serve`. * Added `Access-Control-Allow-Origin: *` header to HTTP responses in `haunt serve` to avoid CORS issues while developing. * Added `post-author`, `post-tags` and `post-title` convenience procedures. * Added `reader-find` and `reader-read` procedures. * Added `#:post-prefix` parameter to blog builder, allowing for post pages to nested deeper than collection pages in the resulting file hierarchy. * Added documentation for [RSS builder](https://files.dthompson.us/docs/haunt/latest/RSS.html). * Added `#:last-updated` parameter to atom and RSS feed builders for reproducible generation of feeds that don’t change timestamps every build. * Fixed `haunt` executable so that it automatically adds its own modules to `GUILE_LOAD_PATH` and `GUILE_LOAD_COMPILED_PATH`. This addresses a longstanding source of confusion when users install Haunt to a location that isn’t on Guile’s default load path such as `/usr/local`. * Fixed atom feed generation issues such as using `content` instead of `summary` for blog post contents and “self” URLs that did not have a URI scheme. * Fixed blog builder to only render pages for posts that are in a collection rather than all posts. * Fixed inotify integration so that it is *not* compiled or loaded on non-Linux platforms. ## Download Haunt 0.3.0 is already available in [Guix](https://guix.gnu.org/): ``` guix pull guix install haunt ``` Otherwise, you can build from source: Source tarball: [haunt-0.3.0.tar.gz](https://files.dthompson.us/haunt/haunt-0.3.0.tar.gz) GPG signature: [haunt-0.3.0.tar.gz.asc](https://files.dthompson.us/haunt/haunt-0.3.0.tar.gz.asc) See the [Haunt project page](/projects/haunt.html) for more information. Thank you to Richard Sent, Denys Nykula, Yuval Langer, Filip Lajszczak, jgart, Jelle Licht, and Christine Lemmer-Webber for their contributions to this release. Happy haunting!