logseq / Mldoc
Programming Languages
- Mldoc Another Org-mode and Markdown parser implemented using OCaml and [[https://github.com/inhabitedtype/angstrom][Angstrom]]. It's based on [[http://iso.mor.phis.me/projects/mlorg/][mlorg]] which is a high quality Org-mode parser written by [[https://github.com/asmanur?tab=repositories][Simon Castellan]].
** Who's using Mldoc?
- [[https://logseq.com][Logseq]], a local-first notes app (In development)
** Build #+begin_src sh # compile make
# run test
make test
#+end_src
** Usage *** For Javascript users #+BEGIN_SRC sh # install mldoc npm install -g mldoc
# convert org mode file to html
mldoc makehtml -i ./test.org -o ./test.html
# convert markdown mode file to html
mldoc makehtml -i ./test.markdown -o ./test.html
#+END_SRC
*** For OCaml users #+BEGIN_SRC sh # compile make
# convert org file to html
_build/default/bin/main.exe ./test.org -o ./test.html
#+END_SRC
*** Invoke utop in Emacs #+BEGIN_SRC sh opam config exec -- dune utop lib -- -emacs #+END_SRC
** Parsing todos [12/12] *** DONE Heading [7/7] 1. [X] level 2. [X] marker 3. [X] priority 4. [X] title 5. [X] tags 6. [X] stats 7. [X] footnote
*** DONE Markup (Inline) [14/14] 1. [X] Latex fragment 2. [X] timestamp 3. [X] entity 4. [X] macro 5. [X] statistics cookie 6. [X] footnote reference 7. [X] link 8. [X] direct link 9. [X] target 10. [X] verbatim 11. [X] code 12. [X] nested emphasis [4/4] 1. [X] bold 2. [X] underline 3. [X] italic 4. [X] strike_through 13. [X] subscript 14. [X] superscript
*** DONE Table [2/2] 1. [X] preliminary support 2. [X] column groups
*** DONE List [3/3] 1. [X] Unordered list 2. [X] Ordered list 3. [X] Definition list
*** DONE Directive
*** DONE Block [5/5] 1. [X] src 2. [X] quote 3. [X] example 4. [X] custom 5. [X] block nested in block
*** DONE Comment
*** DONE Drawer Not exported.
*** DONE Horizontal
*** DONE Latex environment
*** DONE Quoting *** DONE TOC
** DONE Export [2/2]
- [X] json
- [X] html