Remember //nix/escapeExecline? Well, this is worse (for some possible
meanings of the word). Instead of taking a list and escaping/rendering
it to an execline script, Execline reimplements part of execlineb(1):
It takes a (nested) list where any enclosed list signifies an execline
block and produces the corresponding execline argv form as described in
execline-block(7). This means the result of Execline can directly be
executed using •SH without the need for execlineb(1).
Consequently, execlineb(1)'s management of positional parameters and the
environment are not available. This is fine for the intended purpose of
Execline (glueing together shell commands efficiently without messing
around with the FFI in BQN for pipe(2) etc.).
Change-Id: Ief69b1bab919c16b6e39c3f5dc3db628766c5a8c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13180
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
- Reduce visual noise, e.g. parens where it hurts readability.
- Separate parts of trains visually where it helps readability.
- Reduce amount of unnecessarily pointfree code.
Change-Id: Ie0ef03af7d344863a81bf0557b90a4dfb7974e84
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13126
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Otherwise, two distinct entries would link to the same location with the
older entry “winning”.
Change-Id: I73cce835c110fcce0161c9581cc415697a7d74ab
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13113
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Markup for the git backend is implemented as a lookup table to commands
that read markup on stdin and write it to stdout. Markdown uses lowdown,
Org pandoc and HTML doesn't need to be altered.
Future Work:
- Title extraction from the files instead of the file name. Since we use
the file name as ids in the git backend, it is currently impossible to
change the title without breaking links.
- Use emacs for Org. Unfortunately, it is really slow, so we may need to
do something drastic, like writing an sourcegraph style markup
conversion service or dumping an emacs image.
- Copy post dependencies, e.g. included images.
Change-Id: I88ad4cc18ada1d68d81fdecf685096f105e3fef3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13110
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Markup conversion and metadata querying beyond date is not yet
implemented. Currently, plain text is rendered in a <pre>, but without
any escaping.
Change-Id: I74cd2f8a0eab23bea00ca15232e915c0a3c74138
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13109
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
This implementation is still very basic. For reference, e.g. mozilla has
published a more fleshed out variant of such an algorithm:
<https://github.com/mozilla/unicode-slugify>.
Change-Id: Id3d76a4f9e976952dd3c98835df0de7c4f86c3bc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13108
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
We can use ! in R to display the error instead.
Change-Id: Ib7f6e559014e3f99a9f99c159a31a45a7a0e65a5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13105
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
The array listing was pretty nice for debugging, but having arrays where
every element has a different meaning as an interface between different
parts of the code is not great. Refactoring will be less frustrating if
we just store everything using a key-value scheme in namespaces.
Change-Id: I806fea247b6f996dbdd93df24f3fdb762340f043
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13017
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
We can actually get all the headers we are interested in just one call
of mhdr(1) since it can query multiple headers in multiple messages in
just one call. With BQNs reshape / two dimensional array facilities it
is easy to group the lines of headers by their originating message and
append the original path to the result array.
We still use a separate mhdr(1) call for the Date header since we rely
on the -D option for parsing the header.
Change-Id: Iaaf8f21fa22ab3e32e6900df4ae164e72c722cd3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13016
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Currently, blërg is an incomplete reimplementation of
//users/sterni/mblog that uses mblaze(7) and //users/sterni/mn2html to
process the backing mail notes.
Now, why start from scratch again?
- mblog is depressingly slow at the moment which is due to
//third_party/lisp/mime4cl. The performance problems are
(probably) solvable, but this would require carefully
redesigning the library's use of streams. I'm not motivated
to look into that at the moment, unfortunately.
- I had an idea for intergrating additional storage backends
for entries into an mblog like software. I've found experimenting
with this in BQN to be quite pleasant as the backends can
easily be expressed as namespaces.
Change-Id: I90c8ff7b5f7235d6fd7b0619338b553be8742e49
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13015
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>