feat(sterni/mblog): convert apple note mime msgs to html
For now mblog only contains the mnote-html executable which takes a mime
message from a maildir and prints the equivalent HTML fragment to
stdout. It is intended to work with the mblaze(7) utilities,
i. e. mnote-html resolves all `object` tags to proper `img` inclusions
with the correct filename, so mshow(1)'s -x version can supply the
needed image files. A note created using Apple's Notes app (tested with
the iOS version) can be converted in a viewable HTML file like this:
$ mnote-html path/to/msg > fragment.html
$ mshow -x path/to/msg
$ cat <(echo "<!DOCTYPE html>") fragment.html > document.html
$ xdg-open document.html
Note that only the limited feature set of Apple Notes when using the
IMAP backend is supported. The iCloud-based one has more (quite neat)
features, but its notes can only accessed via an internal API as far as
I know.
This CLI is a bit impractical due to the big startup overhead of loading
the lisp image. mblog should be become a fully fletched static site
generator in the future, but this is a good starting point and providing
the mnote-html tool is certainly useful.
Change-Id: Iee6d1558e939b932da1e70ca2d2ae75638d855df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3271
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
7f31562acf
commit
8e156e6b86
5 changed files with 250 additions and 0 deletions
31
users/sterni/mblog/default.nix
Normal file
31
users/sterni/mblog/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ depot, pkgs, ... }:
|
||||
|
||||
depot.nix.buildLisp.program {
|
||||
name = "mnote-html";
|
||||
|
||||
srcs = [
|
||||
./packages.lisp
|
||||
./transformer.lisp
|
||||
./note.lisp
|
||||
./cli.lisp
|
||||
];
|
||||
|
||||
deps = [
|
||||
{
|
||||
sbcl = depot.nix.buildLisp.bundled "uiop";
|
||||
default = depot.nix.buildLisp.bundled "asdf";
|
||||
}
|
||||
depot.third_party.lisp.alexandria
|
||||
depot.third_party.lisp.closure-html
|
||||
depot.third_party.lisp.cl-who
|
||||
depot.third_party.lisp.mime4cl
|
||||
];
|
||||
|
||||
main = "mblog:main";
|
||||
|
||||
# due to sclf
|
||||
brokenOn = [
|
||||
"ccl"
|
||||
"ecl"
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue