Releasing Orxite 1.0.1 (first release)

I've released Orxite — my static site generator based on Emacs and Org-Mode — as already promised three days ago.

The source is available on Gitlab and on Github. The primary site is, for the moment, Gitlab.

Unique selling points

Unique selling points of Orxite are

  • Comes with a minimalist style in the spirit of (I hope) Brutalist Web Design. By which I mean "truth to materials", not intentional ugliness.
  • Has first class support for Org-Mode sources.
  • Has excellent support for mathematics courtesy of Org-Mode and Mathjax.
  • Instead of a limited text template language uses Emacs Lisp for templating, thus giving the template and macro author all the power of Lisp for templating.

Lisp for templating

The latter point (Lisp for templating) deserves some illustration. A template in static site generators is basically only a function that is specified by giving a skeleton and identifying holes in the skeleton into which data is to be filled in from some context of the act of expansion.

Lisp friends will immediately recognize a sort of quasi-quotation/backquoting from this description. Also XHTML is a tree, so the idea to do away with text templates and instead build Lisp data structures using backquote/unquote seems to be obvious.

Orxite does exactly that, so a template in orxite might look like

(defun my-template (content)
  (orxite-outer-template
   `(div/content.content
     (:h1
      (@ :id "title" :class "title")
      ,(@site :title)
      ,content))))

Limitations

Currently the major limitation is the time Orxite takes to process a site: A whopping 4 seconds on a pretty decent machine per page, due to the fact that emacs has to be invoked in batch mode twice per page.

I know how to fix this already, but as things stand it is not high on my list of priorities.

And the source code is not well documented (yet).

Comments

Due to legal pitfalls in Europe there is no comment section in this blog at the moment (sorry), but you can discuss this article or comment on its content ➡ here on Mastodon.