Ivory Siege Tower

mobile construct built of thoughts and parentheses

The Keep is Enclosed

[2023-02-04]

blog emacs org roam st_dev

Been trying out transforming my Org-Roam notes exporter into an emacs package. Not using any framework, just instructions in the Emacs manual.

After a few modifications I can now call use-package at the Org-Roam-Blog Engine instead of just require, and it will know where to grab the pre-built Rust dynamic module that I use for converting Org markup to html - for now. Meaning there are more potential features to dispatch to Rust's serde and orgize.

The current snapshot of the Org-Roam-Blog can be found here, in case anyone cares.

Although being very helpful already for populating the SiegeTower with its content in a possibly most sane way - not getting under my feet when writing, nor enforcing a structure of the original Roam-accounted notes location - the system has its flaws. One of them being not really fast during export. That is partly rooted that the export is single-threaded, thanks to the SQLite and Roam's lock upon it (maybe I'll find a way around it), but also in some preprocessing operations that I perform inside Emacs Org buffers. Apparently getting rid of noexport by editing buffers with elisp seems slow, even done with idiomatic forms (is there such thing as idiomatic elisp approach I wonder?).

There is another problem on the project organization philosophy level that I had a chance to feel. While happily incorporating one-page configuration files in Org documents, turning my Roam wiki partly into a source repository, I'd rather avoid authoring multi-file software projects in the Emacs Org "literate programming" paradigm. Not at once, but at some point it becomes a nuisance to make sure that the whole tangled project is consistent and loads without errors. Just as @astynax warned: programming in "literate" style can be beneficial in such lazy environments where the order of instructions loading doesn't matter - and it is not the case in (e)lisp, not completely. Otherwise one better go the other way around, with automatic documentation generation from the code introspection and docstrings.

They say noweb is still alive and worth at least a look at.

UPD: I'm using noweb now for e.g. creation of consistent emacs configurations for home and office etc.

Social Timeline: