# org-tangle [![Build Status](https://travis-ci.org/parsing-tech/org-rs.svg?branch=master)](https://travis-ci.org/parsing-tech/org-rs) - [Main Repo](https://github.com/parsing-tech/org-rs) A command line tool to tangle code blocks in org file to source code file. - A faster way to tangle org-mode. ## Note About Restriction - The use case is restricted to global tangle property-line - code block level tangle property-line is NOT supported - headline level tangle property-line is NOT supported I recommend [ntangle](https://github.com/OrgTangle/ntangle), if you need more complete org-mode supports. ## Getting Start To build the program, nightly rust toolchain is needed. `rustup` is the tool to help programmers install rust toolchains. - One can get rustup from :: https://rustup.rs Then do: ``` rustup install nightly cargo +nightly install org-tangle ``` ## usage ``` USAGE: org-tangle [FLAGS] [PATH]... FLAGS: -r, --recursive recursively traverse -h, --help Prints help information -V, --version Prints version information ARGS: ... can be or ignore non unicode ignore non `.org` files ignore `.org` files without tangle property ``` ## Example In file `engine.org` - Add tangle property-line ``` #+property: tangle lib.rs ``` - The following code block will be tangled into `lib.rs` - where code blocks are marked by `#+begin_src ` and `#+end_src` ``` #+begin_src rust fn tangle (string: &str) -> Result { let mut result = String::new (); let mut lines = string.lines (); while let Some (line) = lines.next () { if block_begin_line_p (line) { tangle_collect (&mut result, &mut lines)?; } } Ok (result) } #+end_src ``` - For a complete example, see [this directory](https://github.com/parsing-tech/org-rs/tree/master/org-tangle-engine/src) where `engine.org` is tangled to `lib.rs` ## Related Project - [md-tangle](https://github.com/parsing-tech/md-rs/tree/master/md-tangle) -- same tool for markdown file.