diff options
-rw-r--r-- | haunt.scm | 52 | ||||
-rw-r--r-- | images/haunt/logo.png (renamed from images/haunt.png) | bin | 8027 -> 8027 bytes | |||
-rw-r--r-- | posts/haunt-0.1-release.md | 37 | ||||
-rw-r--r-- | posts/haunt-0.2-release.md | 32 | ||||
-rw-r--r-- | posts/haunt-0.2.1-release.md | 24 | ||||
-rw-r--r-- | snippets/haunt.scm | 24 |
6 files changed, 168 insertions, 1 deletions
@@ -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 Binary files differindex 4e18300..4e18300 100644 --- a/images/haunt.png +++ b/images/haunt/logo.png 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"))) |