From 50dc7bb79af62b819648c67c5ccd33b3470e626c Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sat, 10 Mar 2018 21:41:36 -0500 Subject: Add Haunt manual. --- manuals/haunt/Introduction.html | 137 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 manuals/haunt/Introduction.html (limited to 'manuals/haunt/Introduction.html') diff --git a/manuals/haunt/Introduction.html b/manuals/haunt/Introduction.html new file mode 100644 index 0000000..6fe6c4e --- /dev/null +++ b/manuals/haunt/Introduction.html @@ -0,0 +1,137 @@ + + + + + + +Introduction (Haunt Reference Manual) + + + + + + + + + + + + + + + + + + + +
+

+Next: , Previous: , Up: Top   [Contents][Index]

+
+
+ +

1 Introduction

+ +

Haunt is a hackable static site generator written in Guile Scheme. A +static site generator assists an author with generating the HTML pages +that they publish on the web. Unlike “content management systems” +such as Wordpress or Drupal, static site generators are not dynamic +web applications (complete with a relational database) that build +pages on-the-fly. Instead, web pages are built in advance, on the +author’s computer, and copied to a web server when it is time to +publish changes. The consequence of this design is that the web +server no longer needs to run a complex, potentially insecure web +application that connects to a database to retrieve data. Static +files can be served easily by any generic web server. Since there is +no web application or database server to deal with, static websites +are easier to maintain, more secure, and resistant to high web traffic +(“slashdotting.”) Furthermore, the entire website is stored in +plain text, which allows the files to be version-controlled rather +than kept in a relational database with no concept of history that +needs to be backed up regularly. +

+

At the time that Haunt was conceived, there existed literally hundreds +of other static site generators. Why add another one? Haunt +differentiates itself from most other static site generators in that +it aspires to the Emacs philosophy of “practical software freedom.” +Not only is the source code available under a Free Software license, +as most static site generators are, it is designed to be easily hacked +and extended without altering the core source code. Haunt +purposefully blurs the line between document and program, author and +programmer, by embracing the notion of data as code. A Haunt-based +website is not simply data, but a computer program. This design +strategy encourages authors to automate repetitive tasks and empowers +them to extend the software with their own ideas. +

+

To make such a system work well, a general-purpose, extensible +programming language is needed. A traditional configuration file +format simply will not do. The programming language that we feel is +best suited to this task is Scheme, a clean and elegant dialect of +Lisp. We believe that by giving authors the full expressive power of +Scheme, they will be able to produce better websites and make better +use of their time than with less programmable systems and less capable +programming languages. Authors should feel empowered to hack the +system to make it do what they want rather than what some programmer +decided they should want. And perhaps most importantly, building +websites with Haunt should be fun. +

+

Websites written in Haunt are described as purely functional programs +that accept “posts”, text documents containing arbitrary metadata, +as input and transform them into complete HTML pages using Scheme +procedures. Haunt has no opinion about what markup language authors +should use to write their posts and will happily work with any format +for which a “reader” procedure exists. Likewise, Haunt also has no +opinion about how authors should structure their sites, but has sane +defaults. Currently, there exist helpful “builder” procedures that +do common tasks such as generating a blog or Atom feed. While the +built-in features may be enough for some, they surely will not be +enough for all. Haunt’s Scheme API empowers authors to easily tweak +existing components, write replacements, or add entirely new features +that do things no else has thought to do yet. +

+

Happy haunting! +

+
+
+

+Next: , Previous: , Up: Top   [Contents][Index]

+
+ + + + + -- cgit v1.2.3