OrgTangle / org-babel-tangle.py

The same, much faster.
23 stars 5 forks source link

+TITLE: org-babel-tangle.py: the same, but faster

This is a reimplementation of the [[https://orgmode.org/][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:

+BEGIN_EXAMPLE

$ org-babel-tangle myfile.org wyag ................................................................. 4 lines libwyag.py ......................................................... 598 lines wyag-tests .......................................................... 75 lines

+END_EXAMPLE

If no file is passed to command-line, it will read from =stdin=.

This program is extremely dumb, and lacks quite a few Org-mode features, most notably [[https://orgmode.org/manual/Noweb-reference-syntax.html][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.