2
Fork 0
No description
  • Common Lisp 98.4%
  • Just 1.6%
Find a file
2026-06-12 14:25:30 +02:00
.github docs: align documentation with global OpenCode instructions 2026-06-07 08:51:24 +02:00
doc docs: add Dependencies section and update Extension Guide with cl-ppcre 2026-06-07 08:56:17 +02:00
src fix(style): indentation 2026-06-11 19:22:19 +02:00
tests test(parser): expand edge case and resiliency coverage 2026-06-02 17:32:29 +02:00
AGENTS.md docs: align documentation with global OpenCode instructions 2026-06-07 08:51:24 +02:00
dev.metalisp.orgmode.asd feat(parser): replace manual string matching with cl-ppcre 2026-06-07 08:10:05 +02:00
justfile Update justfile to see compile errors 2026-06-12 14:25:30 +02:00
LICENSE Docs: Update AGENTS.md with Org Element API insights and add LGPL-3.0 LICENSE 2026-05-26 18:48:22 +02:00
README.html Tests: Add e2e test suite and TEST.org fixture 2026-05-27 14:45:38 +02:00
README.org docs: align documentation with global OpenCode instructions 2026-06-07 08:51:24 +02:00

dev.metalisp.orgmode

A simple, data-driven Org-mode to HTML converter in Common Lisp.

System Dependencies

The following are the expected baselines for local development:

  • Fedora Linux
  • Podman
  • Just
  • SBCL (Steel Bank Common Lisp)

Quickstart

You can start the interactive REPL to play with the library:

# Start the interactive SBCL REPL
just repl

Usage

(ql:quickload :dev.metalisp.orgmode)

;; Parse a string with markup and links
(ml-orgmode:parse-org-string "* Hello
This is /italic/ and [[https://google.com][a link]].
- Item 1
- Item 2")

;; Convert to HTML
(ml-orgmode:ast-to-html (ml-orgmode:parse-org-string "* Welcome"))
;; => "<h1>Welcome</h1>"

Testing

The test suite is split into two layers:

  • Unit tests (tests/suite.lisp): fast, isolated checks for every parser collector and HTML renderer.
  • End-to-end tests (tests/e2e.lisp): parse tests/fixtures/TEST.org (a fixture covering every supported element) and assert correct HTML output.

Run everything with just:

just test          # full suite — unit + e2e (~280 checks)
just test-e2e      # e2e suite only
just test-one parse-headline   # single named test

Or directly from a Lisp REPL:

(asdf:test-system :dev.metalisp.orgmode)