8e156e6b86
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>
17 lines
665 B
Common Lisp
17 lines
665 B
Common Lisp
(in-package :mblog)
|
|
(declaim (optimize (safety 3)))
|
|
|
|
(defparameter +synopsis+ "mnote-html FILE [FILE [ ... ]]")
|
|
|
|
;; TODO(sterni): handle relevant conditions
|
|
(defun main ()
|
|
(let* ((args (uiop:command-line-arguments))
|
|
(help-p (or (not args)
|
|
(find-if (lambda (x)
|
|
(member x '("-h" "--help" "--usage")
|
|
:test #'string=))
|
|
args))))
|
|
(if help-p (format *error-output* "Usage: ~A~%" +synopsis+)
|
|
(loop for arg in args
|
|
do (apple-note-html-fragment
|
|
(mime:mime-message (pathname arg)) *standard-output*)))))
|