1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
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!
|