This is a reimplementation of the Org-Mode function org-babel-tangle
,
in Python, and about 100 times faster. I wrote this because it took
about 5.5s to Org to tangle three files for a total of ≅650 lines of
code, which was becoming more than irritating.
Usage is very simple, put this program somewhere in $PATH
, then:
$ org-babel-tangle myfile.org wyag ................................................................. 4 lines libwyag.py ......................................................... 598 lines wyag-tests .......................................................... 75 lines
If no file is passed to command-line, it will read from stdin
.
You can pipe file paths inside script, like so:
$ find . -type f -name "*.org" ./README.org ./doc/main.org $ find . -type f -name "*.org" | ./org-babel-tangle src/main.c.............................................................6 lines doc/architecture.puml.................................................14 lines
This program is extremely dumb, and lacks quite a few Org-mode features, most notably noweb. But basically, all it does is routing lines of text to output files and fixing indentation — everything else is unsupported.
I’ve done a few tests, and the files this program produces are
bit-for-bit identical to the real org-babel-tangle
output. If you
notice a difference, please open an issue.