Haunt is a simple, functional, hackable static site generator that gives authors the ability to treat websites as Scheme programs.
By giving authors the full expressive power of Scheme, they are able to control every aspect of the site generation process. Haunt provides a simple, functional build system that can be easily extended for this purpose.
Haunt has no opinion about what markup language authors should use to write posts, though it comes with support for the popular Markdown format. Likewise, Haunt has no opinion about how authors structure their sites. Though it comes with support for building simple blogs or Atom feeds, authors should feel empowered to tweak, replace, or create builders to do things that aren't provided out-of-the-box.
Here's what a simple Haunt configuration looks like:
(use-modules (haunt asset) (haunt builder blog) (haunt builder atom) (haunt builder assets) (haunt reader commonmark) (haunt site)) (site #:title "Built with Guile" #:domain "example.com" #:default-metadata '((author . "Eva Luator") (email . "firstname.lastname@example.org")) #:readers (list commonmark-reader) #:builders (list (blog) (atom-feed) (atom-feeds-by-tag) (static-directory "images")))
In a new directory, save the above to a file named
Create a subdirectory named
Add the following to a new file named
title: First post! date: 2018-03-13 18:00 tags: hello summary: hello! --- Hello, world!
haunt build to build the site.
haunt serve to a launch a web server to
preview your work.
Open http://localhost:8080 in your web browser and smile, because you've just generated your first Haunt site!
Haunt uses the standard GNU build system. To build and install Haunt from source, run:
./configure make make install
Haunt is developed using the Git version control system. The official repository is hosted at https://git.dthompson.us/haunt.git
git clone https://git.dthompson.us/haunt.git
Real-time discussion for Haunt can be found on the
#guile channel on the Freenode IRC network.
Send patches and bug reports to email@example.com.