Go to file
David Thompson 99181c71bc html: Stop escaping apostrophes.
This was breaking the rendering of documents like:

    '(p (@ (onclick "javascriptFunction('argmunent')")))

The single quotes would be escaped and then the onclick handler
wouldn't work at all.

* haunt/html.scm (%escape-codes): Remove apostrophe escape code.
2017-11-01 11:57:28 -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 html: Stop escaping apostrophes. 2017-11-01 11:57:28 -04: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 Add 'make publish' target. 2017-01-23 19:45:05 -05:00
README doc: Add guile-commonmark as optional dependency. 2016-08-18 15:04:38 -04:00
THANKS Thank Vladimir. 2016-05-20 06:39:25 -04:00
bootstrap Add autotools bootstrap script. 2015-07-19 10:02:53 -04:00
configure.ac Bump version to 0.2.1. 2017-01-23 19:44:59 -05:00
guix.scm guix: Add guile-commonmark as a propagated input. 2016-08-18 15:07:18 -04: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.