feat(sterni/mn2html): reimplement mnote-html in Rust

Reimplement the MIME body extraction and HTML rewriting from mblog in
Rust so that shelling out to it becomes viable. The problem with
mnote-html is mainly that it – being written in CL – requires a ~300MB
executable and is a bit sluggish starting.

Change-Id: I5c1adc1a7ab5f3dde207f9a1f67ace685bd3f69f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13014
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
This commit is contained in:
sterni 2024-12-11 00:22:25 +01:00 committed by clbot
parent 84bdb1e89a
commit 3224488a29
6 changed files with 759 additions and 0 deletions

View file

@ -0,0 +1,20 @@
# mn2html
Convert mail notes authored e.g. by the iOS/macOS Notes application,
into HTML suitable for standard browsers. Instead of full documents,
mn2html emits HTML fragments that can easily be embedded into other
documents or postprocessed using a templating engine.
## History
mn2html is a reimplementation mnote-html from //users/sterni/mblog.
The reason for this was mainly avoiding the startup cost associated
with Common Lisp programs, so the program would be suitable for
shell scripting.
## Tasks
- [ ] Properly handle `text/plain` bodies (from e.g. notemap)
- [ ] Add man page
- [ ] Help screen
- [ ] Improve error reporting