2023-04-05 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. [Emacs] [Org-Mode] [three days ago] <~/my/glitzersachen2022/blog/2023-04-02_blogging-with-emacs-make-lisp.org> [on Gitlab] [on Github] 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. [Brutalist Web Design] ["truth to materials"] [intentional ugliness] [Mathjax] [Emacs Lisp] 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)))) └──── [quasi-quotation/backquoting] 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]. [here on Mastodon]