9b3f82e5fa
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. |
||
---|---|---|
example | ||
haunt | ||
scripts | ||
.gitignore | ||
COPYING | ||
Makefile.am | ||
README.md | ||
bootstrap | ||
configure.ac | ||
package.scm | ||
pre-inst-env.in |
README.md
Haunt
About
Haunt is a static site generator written in Guile Scheme. It's simple, functional, and extensible.
Features
- Easy blog and Atom feed generation
- Supports any markup language that can be parsed to SXML
- Simple development server
- Purely functional build process
- User extensible
Example Configuration
(use-modules (haunt site)
(haunt reader)
(haunt builder blog)
(haunt builder atom)
(haunt builder assets))
(site #:title "Built with Guile"
#:domain "example.com"
#:default-metadata
'((author . "Eva Luator")
(email . "eva@example.com"))
#:readers (list sxml-reader html-reader)
#:builders (list (blog)
(atom-feed)
(atom-feeds-by-tag)
(static-directory "images"))
Usage
Write a configuration file named haunt.scm
. Add your posts to a
directory named posts
. Then run haunt build
!
To view your creation, run haunt serve
and browse to
localhost:8080
.
Requirements
GNU Guile >= 2.0.9
Building from Git
Haunt uses the familiar GNU build system. GNU automake, autoconf, and make are required to build from a git checkout.
./bootstrap && ./configure && make
GNU Guix users can create a build environment with all necessary
dependencies using the handy guix environment
tool:
guix environment -l package.scm
License
GNU GPLv3 or later