#tangle #org-mode #engine #line #tool #literate-programming #collection

yanked org-tangle-engine

A faster way to tangle org-mode. - the engine of the commend line tool

0.1.9 Oct 9, 2018
0.1.8 Oct 8, 2018

#15 in #literate-programming

Download history 5/week @ 2024-02-20 50/week @ 2024-02-27 3/week @ 2024-03-12

58 downloads per month
Used in 7 crates (4 directly)

GPL-3.0 license

9KB
254 lines

tangle in rust

A collection of tools to do tangle in rust.

Getting Start

To build the program, nightly rust toolchain is needed.

rustup is the tool to help programmers install rust toolchains.

Then do:

rustup install nightly
cargo +nightly install tangle-cli --git https://github.com/xieyuheng/tangle-rs

org-mode

In a .org file

  • Add tangle property-line
#+property: tangle lib.rs
  • The following code block will be tangled into lib.rs
#+begin_src rust
fn tangle (string: &str) -> Result <String, TangleError> {
    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

Note About Restriction on org-mode

  • 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

Check out https://github.com/OrgTangle for alternative tangle support.

Markdown

In a .md file

  • Add tangle property-line
---
tangle: lib.rs
---
  • The following code block will be tangled into lib.rs
``` rust
fn tangle (string: &str) -> Result <String, TangleError> {
    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)
}
```

Contributing

We enforce C4 as collaboration protocol :

Code Of Conduct

License

No runtime deps