Go to file
David Thompson efa145cc4b Thank Alex Kost. 2018-03-19 10:11:25 -04:00
doc doc: Add Readers section and reader subsections. 2016-12-14 20:52:41 -05:00
example example: Add a Markdown post. 2016-08-18 15:20:42 -04:00
haunt serve: Fix 'file-extension' so that the right MIME type is chosen. 2017-12-21 08:51:02 -05:00
scripts Remove hardcoded Guile executable path. 2015-07-26 15:20:18 -04:00
tests Fix tests that fail during daylight savings time. 2017-01-23 19:43:22 -05:00
website website: Update manual. 2017-01-23 20:40:04 -05:00
.gitignore Add beginnings of a reference manual. 2015-10-15 21:05:11 -04:00
COPYING First commit. 2015-01-04 20:02:16 -05:00
Makefile.am Makefile: Fix compiled Guile file installation directory. 2018-03-10 19:59:18 -05:00
README doc: Add guile-commonmark as optional dependency. 2016-08-18 15:04:38 -04:00
THANKS Thank Alex Kost. 2018-03-19 10:11:25 -04:00
bootstrap Add autotools bootstrap script. 2015-07-19 10:02:53 -04:00
configure.ac Bump to version 0.2.2. 2018-03-10 19:59:35 -05:00
guix.scm guix: Switch to Guile 2.2. 2017-12-21 08:51:13 -05:00
pre-inst-env.in First commit. 2015-01-04 20:02:16 -05:00
test-env.in utils: Clean up and add tests. 2015-10-14 10:50:03 -04:00

README

-*- mode: org -*-

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

#+BEGIN_SRC scheme
  (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"))
#+END_SRC

* 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=.  For quicker development cycles, run =haunt serve
--watch= to automatically rebuild the site when things change.

* Requirements

  - GNU Guile >= 2.0.11

  Optional:

  - guile-reader (for Skribe support)
  - guile-commonmark (for CommonMark support)

* Building from Git

Haunt uses the familiar GNU build system.  GNU automake, autoconf, and
make are required to build from a git checkout.

#+BEGIN_SRC sh
  ./bootstrap && ./configure && make
#+END_SRC

Once Haunt is built, it can be run directly from the source tree (no
need to run =make install=) via the =pre-inst-env= script:

#+BEGIN_SRC sh
  ./pre-inst-env haunt --help
#+END_SRC

GNU Guix users can quickly create a build environment with all of the
necessary dependencies using the handy =guix environment= tool:

#+BEGIN_SRC sh
  guix environment -l guix.scm
#+END_SRC

* Example

An example Haunt site can be found in the =example= directory.  To
build it, run:

#+BEGIN_SRC sh
  cd example
  ../pre-inst-env haunt build
#+END_SRC

* License

GNU GPLv3 or later.  See =COPYING= for the full license text.