Go to file
David Thompson a37c3cd585 post: Allow dashes in slugs.
* haunt/post.scm (char-set:slug): New variable.
(post-slug): Use slug char set.
2016-04-02 15:56:19 -04:00
doc doc: Add support for 'install-info'. 2015-12-06 13:46:41 -05:00
example build: Fix all the Guix development package references. 2015-11-10 21:47:24 -05:00
haunt post: Allow dashes in slugs. 2016-04-02 15:56:19 -04:00
scripts Remove hardcoded Guile executable path. 2015-07-26 15:20:18 -04:00
tests post: Add read-metadata-headers procedure. 2015-10-15 22:46:30 -04:00
website website: Add license information to home page. 2015-08-10 09:06:04 -04: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 build: Allow building with Guile 2.2. 2016-02-15 19:56:41 -05:00
README Renamed README.md to README. 2015-11-10 21:49:10 -05:00
THANKS Add THANKS file. 2015-08-09 10:13:18 -04:00
bootstrap Add autotools bootstrap script. 2015-07-19 10:02:53 -04:00
configure.ac build: Allow building with Guile 2.2. 2016-02-15 19:56:41 -05:00
guix.scm guix: Add pkg-config to environment. 2016-02-15 19:57:41 -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)

* 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.