Skip to content

logseq/mldoc

Repository files navigation

Mldoc

Another Org-mode and Markdown parser implemented using OCaml and Angstrom. It’s based on mlorg which is a high quality Org-mode parser written by Simon Castellan.

Who’s using Mldoc?

  • Logseq, a local-first notes app (In development)

Build

# compile
make

# run test
make test

Run utop

cd lib
dune utop

Usage

For Javascript users

# install mldoc
npm install -g mldoc

# convert org mode file to html
mldoc convert -i ./test.org -o ./test.html

# convert markdown mode file to html
mldoc convert -i ./test.markdown -o ./test.html

For OCaml users

# compile
make

# convert org file to html
_build/default/bin/main.exe ./test.org -o ./test.html

Invoke utop in Emacs

opam config exec -- dune utop lib -- -emacs

Parsing todos [12/12]

Heading [7/7]

  1. [X] level
  2. [X] marker
  3. [X] priority
  4. [X] title
  5. [X] tags
  6. [X] stats
  7. [X] footnote

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

Table [2/2]

  1. [X] preliminary support
  2. [X] column groups

List [3/3]

  1. [X] Unordered list
  2. [X] Ordered list
  3. [X] Definition list

Directive

Block [5/5]

  1. [X] src
  2. [X] quote
  3. [X] example
  4. [X] custom
  5. [X] block nested in block

Comment

Drawer

Not exported.

Horizontal

Latex environment

Quoting

TOC

Export [2/2]

  1. [X] json
  2. [X] html