the project depends on the following packages which could be installed using quicklisp.
- cl-ppcre
- uiop
- clingon
- ironclad
- fiveam
- local-time
the code uses some sbcl-specific libraries for now, so it is unlikely that it will run on other dialects.
convert a single file from org to html (the %
part is for “formatting” with lisp code):
./run.sh convert -f 'test.org' -d html -o '/tmp/%(identity basename).html'
convert a bunch of files from org to html:
./run.sh convert -r '(:path "/home/mahmooz/brain/notes/1684594232.org" :regex ".*\\.org" :format "org-mode")' -d html -o '/tmp/%(identity basename).html'
convert a bunch of files from org to latex:
./run.sh convert -r '(:path "/home/mahmooz/brain/daily/" :regex ".*\\.org" :format "org-mode")' -d latex -o '/tmp/%(identity title).tex'
roam (query) files
./run.sh roam -r '(:path "/home/mahmooz/brain/daily/" :regex ".*\\.org" :format "org-mode")' -o 'title: %title, id: %id, file: %file'
- [ ] an org-mode-like experience for lem - this is one of the main goals, it is essential that the project supports most if not all features of org so that people can just try lem with org-mode (if they wish to do so) without much hassle.
- [ ] org-agenda support
- [ ] org-babel support
- [ ] use a unified interface for both markdown and org (and perhaps even other formats)
- [ ] org-roam-like functionality (links by ids, navigation by titles), as well as transclusions.
- [ ] an ideal way of mixing inline common lisp code with arbitrary text, and the ability to have custom definitions of syntax.
- [ ] a commandline interface for your text files that supports actions such as exporting to latex and fetching various kinds of metadata for external use.
i should note that i am yet not very familiar with lem and i expect that porting this to lem will take more time than the other tasks.
- contributions are welcome.
- the code is subject to heavy changes.
- the code as it is right now handles some of org-mode’s syntax and allows for partially functional exports to latex, my idea was to not write an “org parser”, but a parser that parses different types of text that follows certain patterns, and use this functionality to provide a builtin org-mode functionality, so that we may easily choose to parse different formats aswell and have a partially uniform interface for both markdown and org-mode in the future.