summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--haunt.scm52
-rw-r--r--images/haunt/logo.png (renamed from images/haunt.png)bin8027 -> 8027 bytes
-rw-r--r--posts/haunt-0.1-release.md37
-rw-r--r--posts/haunt-0.2-release.md32
-rw-r--r--posts/haunt-0.2.1-release.md24
-rw-r--r--snippets/haunt.scm24
6 files changed, 168 insertions, 1 deletions
diff --git a/haunt.scm b/haunt.scm
index 47f07e2..dcd6e05 100644
--- a/haunt.scm
+++ b/haunt.scm
@@ -315,7 +315,7 @@ at "
" — SDL2 bindings for Guile Scheme")
(p ,(anchor "guile-syntax-highlight" "projects/guile-syntax-highlight.html")
" — Syntax highlighting library for Guile Scheme")
- (p ,(anchor "Haunt" "https://haunt.dthompson.us")
+ (p ,(anchor "Haunt" "projects/haunt.html")
" — Functional, hackable static site generator")
(p ,(anchor "Shroud" "projects/shroud.html")
" — GPG-based password manager")
@@ -457,6 +457,55 @@ rendering."))
#:releases
`(("0.1" ,(date 2018 03 10)))))
+(define haunt-page
+ (project-page
+ #:name "Haunt"
+ #:file-name "haunt.html"
+ #:repo "haunt"
+ #:manual? #f
+ #:description
+ `(,(centered-image "/images/haunt/logo.png" "crudely drawn ghost")
+ (p "Haunt is a simple, functional, hackable static site generator
+written in Guile Scheme that gives authors the ability to treat
+websites as programs.")
+ (p "Haunt isn't your average static site generator. Its mission
+is to give authors the full expressive power of Scheme to define every
+aspect of their websites are generated. Haunt uses a simple,
+functional build system that allows any type of web page to be built
+by writing procedures that return page objects.")
+ (p "Haunt has no opinion about what markup language authors
+should use to write posts. Just write the relevant reader procedure
+and Haunt will happily work with that format. Likewise, Haunt has no
+opinion about how authors structure their sites. Haunt ships with
+helpful builder procedures that generate simple blogs or Atom feeds,
+but authors should feel empowered to tweak them, write replacements,
+or add new builders to do things that the Haunt hackers didn't think
+of.")) #:usage
+ `((p "Here's what a simple Haunt configuration looks like:")
+ ,(call-with-input-file "snippets/haunt.scm" highlight-scheme)
+ (p "With the above saved into a file named "
+ (code "haunt.scm")
+ " and a "
+ (code "posts")
+ " directory populated with the articles to publish,
+the site can be built by running "
+ (code "haunt build")
+ ". Once the site is built, running "
+ (code "haunt serve")
+ " and visiting "
+ (code "localhost:8080")
+ " in a web browser will show the results of the build
+without needing to upload the generated files to a web server."))
+#:requirements '("GNU Guile >= 2.1.4"
+ "guile-reader (for Skribe support, optional)"
+ "guile-commonmark (for Markdown support, optional)")
+ #:license "GNU GPLv3+"
+ #:releases
+ `(("0.2.2" ,(date 2018 03 10))
+ ("0.2.1" ,(date 2017 01 23))
+ ("0.2" ,(date 2016 04 24))
+ ("0.1" ,(date 2015 08 08)))))
+
(define chickadee-page
(project-page
#:name "Chickadee"
@@ -613,6 +662,7 @@ Convert SubRip formatted subtitles to WebVTT format.
sly-page
guile-sdl2-page
guile-syntax-highlight-page
+ haunt-page
shroud-page
srt2vtt-page
(static-directory "js")
diff --git a/images/haunt.png b/images/haunt/logo.png
index 4e18300..4e18300 100644
--- a/images/haunt.png
+++ b/images/haunt/logo.png
Binary files differ
diff --git a/posts/haunt-0.1-release.md b/posts/haunt-0.1-release.md
new file mode 100644
index 0000000..836ebbd
--- /dev/null
+++ b/posts/haunt-0.1-release.md
@@ -0,0 +1,37 @@
+title: Introducing Haunt
+date: 2015-08-08 10:00:00
+tags: news, releases
+summary: Haunt 0.1 released
+---
+
+I am pleased to announce the first alpha release of Haunt, yet another
+static site generator. Does the world really need another one of
+those? No, but Haunt is special because it is written in Guile
+Scheme, a clean and elegant Lisp dialect, which allows users to
+compose their websites using functional programming techniques. Using
+a general-purpose, extensible programming language to build websites
+allows Haunt users to view their website as not just mere data, but a
+program. Haunt empowers the user to build the abstractions they need
+to make a great static website without getting in the way.
+
+At its core, Haunt is a very simple program. To build your site,
+Haunt takes your posts and static assets as input, passes them to a
+series of user-defined building procedures that return one or more
+pages, and outputs all of the generated pages to the file system.
+That's all there is to it. All of the "good stuff" is implemented in
+the builder procedures. Haunt 0.1 comes with simple blog and Atom
+feed generators.
+
+Haunt is built to be as hackable as possible, and patches to improve
+it are very much welcome. In particular, new post readers for common
+formats such as org-mode and Markdown are desired, along with a more
+robust blog builder and theme engine. In lieu of a mailing list,
+patches may be sent to `davet` at `gnu.org`.
+
+This blog is built with Haunt, by the way. :)
+
+Source tarball: [haunt-0.1.tar.gz](https://files.dthompson.us/haunt/haunt-0.1.tar.gz.sig)
+
+GPG signature [haunt-0.1.tar.gz.sig](https://files.dthompson.us/haunt/haunt-0.1.tar.gz.sig)
+
+Happy haunting!
diff --git a/posts/haunt-0.2-release.md b/posts/haunt-0.2-release.md
new file mode 100644
index 0000000..a100d92
--- /dev/null
+++ b/posts/haunt-0.2-release.md
@@ -0,0 +1,32 @@
+title: Haunt 0.2 released
+date: 2016-04-24 08:00:00
+tags: release
+summary: Haunt 0.2 released
+---
+
+I am pleased to announce the release of Haunt version 0.2. This
+release features new readers for the
+[Texinfo](http://www.gnu.org/software/texinfo/) and
+[Skribe](http://www.nongnu.org/skribilo/) markup formats, an Info
+manual, small improvements to the Atom and blog builders, and bug
+fixes.
+
+New reader modules:
+
+* `(haunt reader skribe)`
+* `(haunt reader texinfo)`
+
+Bug fixes:
+* [builder: atom: Allow atom feeds to correctly set the blog prefix.](https://git.dthompson.us/haunt.git/commit/ed1602dc36444bcf1023926854a2cb01b5199e7e)
+* [build: Allow building with Guile 2.2.](https://git.dthompson.us/haunt.git/commit/5373877f989689209616109b13fd471b2d093b5f)
+* [post: Allow dashes in slugs.](https://git.dthompson.us/haunt.git/commit/a37c3cd58525be76705ea930551f3935a232790e)
+* [serve: Catch exceptions when rebuilding site.](https://git.dthompson.us/haunt.git/commit/0d67128c3da6413546015fa9092a0017f50d46b9)
+
+A special thank you to Christopher Webber and Mathieu Lirzin for
+contributing to this release!
+
+Source tarball: [haunt-0.2.tar.gz](https://files.dthompson.us/haunt/haunt-0.2.tar.gz)
+
+GPG signature: [haunt-0.2.tar.gz.sig](https://files.dthompson.us/haunt/haunt-0.2.tar.gz.sig)
+
+Happy haunting!
diff --git a/posts/haunt-0.2.1-release.md b/posts/haunt-0.2.1-release.md
new file mode 100644
index 0000000..16f85d8
--- /dev/null
+++ b/posts/haunt-0.2.1-release.md
@@ -0,0 +1,24 @@
+title: Haunt 0.2.1 released
+date: 2017-01-23 08:00:00
+tags: release
+summary: Haunt 0.2.1 released
+---
+
+I am pleased to announce the release of Haunt version 0.2.1. This
+release features a new reader for the
+[Markdown](http://commonmark.org/) format via
+[guile-commonmark](https://github.com/OrangeShark/guile-commonmark) as
+well as small improvements to the Atom feed generator and
+documentation.
+
+The new Commonmark reader can be found in the `(haunt reader
+commonmark)` module.
+
+Thank you to Erik Edrosa, Ludovic Courtès, and Vladimir Zhbanov for
+contributing to this release.
+
+Source tarball: [haunt-0.2.1.tar.gz](https://files.dthompson.us/haunt/haunt-0.2.1.tar.gz.sig)
+
+GPG signature [haunt-0.2.1.tar.gz.sig](https://files.dthompson.us/haunt/haunt-0.2.1.tar.gz.sig)
+
+Happy haunting!
diff --git a/snippets/haunt.scm b/snippets/haunt.scm
new file mode 100644
index 0000000..29250a1
--- /dev/null
+++ b/snippets/haunt.scm
@@ -0,0 +1,24 @@
+(use-modules (haunt asset)
+ (haunt builder blog)
+ (haunt builder atom)
+ (haunt builder assets)
+ (haunt reader)
+ (haunt reader skribe)
+ (haunt reader texinfo)
+ (haunt reader commonmark)
+ (haunt site))
+
+(site #:title "Built with Guile"
+ #:domain "example.com"
+ #:default-metadata
+ '((author . "Eva Luator")
+ (email . "eva@example.com"))
+ #:readers (list commonmark-reader
+ texinfo-reader
+ skribe-reader
+ sxml-reader
+ html-reader)
+ #:builders (list (blog)
+ (atom-feed)
+ (atom-feeds-by-tag)
+ (static-directory "images")))