summaryrefslogtreecommitdiff
path: root/README.md
blob: 1d856a5e9e97d46af9fde5d3e734783904b89312 (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
89
90
91
92
93
94
95
96
Haunt
=====

About
-----

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

```
(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"))
```

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

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.

```
./bootstrap && ./configure && make
```

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:

```
./pre-inst-env haunt --help
```

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

```
guix environment -l package.scm
```

Examples
--------

An example Haunt site can be found in the `example` directory:

```
cd example
../pre-inst-env haunt build
```

License
-------

GNU GPLv3 or later