Haunt

Haunt is a simple, functional, hackable static site generator that gives authors the ability to treat websites as Scheme programs.

crudely drawn ghost

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.

Usage

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  . "eva@example.com"))
      #: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 haunt.scm.

Create a subdirectory named posts.

Add the following to a new file named posts/hello.md:

title: First post!
date: 2018-03-13 18:00
tags: hello
summary: hello!
---

Hello, world!

Run haunt build to build the site.

Run 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!

Documentation

View the reference manual

Releases

Requirements

Installation

Haunt uses the standard GNU build system. To build and install Haunt from source, run:

./configure
make
make install

License

GNU GPLv3+

Source Code

Haunt is developed using the Git version control system. The official repository is hosted at https://git.dthompson.us/haunt.git

Anonymous clone

git clone https://git.dthompson.us/haunt.git

Community

Real-time discussion for Haunt can be found on the #guile channel on the Freenode IRC network.

Contributing

Send patches and bug reports to davet@gnu.org.