Commit graph

16 commits

Author SHA1 Message Date
sterni
defd2a811b fix(sterni/blërg/git): correctly resolve relative repo paths
Change-Id: I2b3d5cf58494c29375eb406070d50fbe919a2097
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13127
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-09 21:26:52 +00:00
sterni
84de750436 refactor(sterni/blërg): try to improve code readability
- 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
2025-02-09 21:26:52 +00:00
sterni
6c9aed1f34 feat(sterni/blërg): check that entry IDs are unique
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
2025-02-08 22:40:42 +00:00
sterni
2b695826d7 feat(sterni/blërg/git): don't make file extension part of id
Change-Id: I3939a87492932c12b060aee00002b93716b4a469
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13112
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-08 22:40:42 +00:00
sterni
278342b923 feat(sterni/blërg/git): use filename w/o extension as title
Change-Id: I33e65b92b9f9aba2f9eaa7867af32337fe9fc247
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13111
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-08 22:40:42 +00:00
sterni
5cd3d9e3ac feat(sterni/blërg/git): render html, org and md entries
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>
2025-02-08 22:40:42 +00:00
sterni
d614fb1b26 feat(sterni/blërg): implement prototype git backend
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>
2025-02-08 21:18:59 +00:00
sterni
1651206232 feat(sterni/blërg): implement generic slug generation
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
2025-02-08 21:18:59 +00:00
sterni
5e3e62c87d feat(sterni/blërg): generic, configurable backends
Change-Id: Iebec5caea9b780eb8ca2ec1f18bb4fa978f4bb95
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13107
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
2025-02-08 21:18:59 +00:00
sterni
78af9a2306 refactor(sterni/blërg): make caller of Run responsible for stderr
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
2025-02-06 10:19:05 +00:00
sterni
dfd8210e99 fix(sterni/blërg/mail-notes): actually extract attachments
Change-Id: I1d9f93081400ce45b66a79ab70e037f73c37092b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13104
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-05 18:44:37 +00:00
sterni
a5272f8ccc docs(sterni/blërg): list dependencies in README
Change-Id: Iceacf406bef71529cb29e8adcf9fe1f713187e42
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13103
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-05 18:23:04 +00:00
sterni
69bb8b1423 refactor(sterni/blërg): clean up header concatenation code
Change-Id: I775bff10f8d74f457fff3742ea198efadabcd67c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13018
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-05 18:22:34 +00:00
sterni
5db216b4ef refactor(sterni/blërg): use namespaces for entries
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>
2025-02-05 18:22:34 +00:00
sterni
eeba67de1c refactor(sterni/blërg): avoid calling mhdr once per header
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>
2025-02-05 18:22:34 +00:00
sterni
6479f9ae5e feat(sterni/blërg): yet another blog software
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>
2025-02-05 18:19:33 +00:00