summaryrefslogtreecommitdiff
path: root/README
blob: 7fc6695bb4ad1e9496574dc9a12b70041779e00c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
-*- mode: org -*-

Haunt is a static site generator written in Guile Scheme.  It's
simple, functional, and extensible.

* Features

  - Easy blog and Atom/RSS 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.