During the week of ASDF extensions I didn't tell you about this library, however I'm using it to render #poftheday site. But preparing the yesterday post about
print-html I found it is written in Literate Programming Style.
print-html is written in org-mode file which was preprocessed and transformed into usual lisp file. Literate-lisp is an ASDF extension which allows you to load
org-mode as usual lisp files.
All that you need to do is to write
:defsystem-depends-on ("literate-lisp") in the system definition file and to use
:org type for components.
Here is the content of my ASD file:
(asdf:defsystem "poftheday" :author "Alexander Artemenko <email@example.com>" :serial t :defsystem-depends-on ("literate-lisp") :depends-on ("cl-org-mode" "cl-bootstrap" "cl-fad" "str" "cl-ppcre" "cl-who" "ppath" "alexandria" "xml-emitter" "rutils" "doplus") ;; This component type is defined by ;; literate-lisp system: :components ((:org "readme")))
My README.org is a usual org-mode file with
lisp code blocks in it. Literate-lisp system defines a custom reader which skips all file content except code blocks and loads them into lisp image.
When used with poly-org mode, this allows having convenient Lisp code navigation and shortcuts right inside the org-mode file. I can hit
C-c C-c to evaluate functions, etc.
So, if you wanted to try Literate Programming, then Jintao Xu's literate-lisp is the best way to go!