Running Orxite 2 now ════════════════════ In the last two weeks, I have prototyped /Orxite 2/, the second generation of the /Orxite/ static site generator based on emacs lisp, shell scripting and /make/. Since yesterday, the site on [glitzersachen.de] is generated by /Orxite 2/. /Orxite 2/ is available (without a specific release yet) from [codeberg.org/m-e-leypold/orxite2]. (All my software will move out from Github and Gitlab within the next months, but this is another story). In some ways /Orxite 2/ is a step back in achievements from /Orxite 1/. /Orxite 1/ — announced [here] and still available from [Gitlab here] — promised: • Templating in a proven (more or less) main stream language, instead of a fringe templating language (like /gohugo). /Orxite 1/ employed emacs lisp as templating language. • Getting relative links right. A bundle of rendered HTML pages can be browsed from disk without an intervening web server. • Automatic perma-links. • Extensibility of site building via the well-known (and loved) /make/ utility. As opposed to e.g. /gohugo/ which is either impossible to extend or makes it only excruciatingly difficult to extend, but definitely doesn't want external tools integrating with it. Unfortunately /Orxite 1/ disappointed in some aspects: • It was definitely too slow because it rendered pages one by one, starting a new emacs instance for every single page, instead of rendering all pages in one go by using `org-publish'. • The extensibility did not materialize for the awkward internal architecture. • Furthermore for minimalist web sites (like /Glitzersachen/) adhering to /brutalist web design/ as explained by [David Bryant Copeland] on [brutalist-web.design], a full templating framework is totally overblown. It turns out, what is necessary is only a mechanism to prefix and suffix some content to the pages, and the rest can be styled sufficiently in CSS. And then in the year since I published /Orxite 1/ additional requirements accumulated which I found hard to integrate into the /Orxite 1/ architecture (if I might be so bold to call some organization principles for scripts and architecture — but then I have heard people calling the most absurd things architecture, so I will be so free): • A central metadata database that allows tools to pull from the page metadata. • Sub-sites (e.g. for books embedded in the site) which get different headers and footers, maybe even different styling. • Integration with [Org-roam], that is, blog articles and web page sources are (or can be) /Org-roam/ notes and can be opened from /Org-roam/. • And again: Extensibility preferably with shell tools. I am happy to say /Orxite 2/ delivers in most of these points already and looks very promising in the others: • Templating is done via the shell. This is the step backwards I already mentioned. But consider that templating is basically the ability to produce a string from a number of arguments that are placed into a "string with holes". The shell knows only strings as data type and the quoting/unquoting plus variable expansion is basically already a templating mechanism. • Permalinks and the relative links work as with /Orxite 1/. • Everything is controlled by /make/. • Integration with /Org-roam/ works, but requires a specific configuration of /Org-roam/ that is outside of /Orxite/. • A recutils based metadata database for the pages is generated and maintained by the /make/ rules. • Page configuration is done by the org /SETUPFILE/ mechanism and this allows configuring different headers for pages that belong to an article series (e.g. a tutorial on shell-programming). • Every page is also available as text rendering (see the link under /TXT/ in the page footer). Furthermore, what is already in reach (though only prototyped outside of /Orxite/ so far) is: • Rendering an article series to a book, handout or slide show. • Rendering pages into different formats like PDF. There are unfortunately no installation instructions for /Orxite 2/. You can look at the sub-directory /example-site/ and extrapolate from there. And you will need [GNU Recutils]. [glitzersachen.de] [codeberg.org/m-e-leypold/orxite2] [here] See file 2023-04-05_orxite-1.0.1.org [Gitlab here] [David Bryant Copeland] [brutalist-web.design] [Org-roam] [GNU Recutils]