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.