emacs-twist / org-babel

A pure Nix implementation of org-babel-tangle
MIT License
15 stars 1 forks source link

Example:

+begin_src nix

let tangle = lib.tangleOrgBabel { languages = [ "emacs-lisp" ]; }; in

Return a string

tangle (builtins.readFile ./config.org)

+end_src

Arguments:

  1. An attribute set of options.
  2. An Org input string. **** tangleOrgBabelFile function Similar to =tangleOrgBabel=, but this function takes a file as an argument and writes the output to a file.

Example:

+begin_src nix

Write to a file

let pkgs = import nixpkgs { inherit system; overlays = [ org-babel.overlays.default ]; }; in pkgs.tangleOrgBabelFile "init.el" ./config.org { languages = [ "emacs-lisp" ]; }

+end_src

Note that this function is provided in the overlay of the flake.

Arguments:

  1. A string for the derivation name.
  2. An input file path.
  3. An attribute set of options. * Options ** Languages Example:

+begin_src nix

{ languages = [ "emacs-lisp" "elisp" ]; }

+end_src

Default: =[ "emacs-lisp" "elisp" ]= **** Filtering subtrees You can transform the input by specifying =processLines= option. It must be a function that takes a list of strings and returns a list of strings.

This library also contains =excludeHeadlines= function which can be used to exclude subtrees according to a predicate on the headline text, so you can use it in the option.

Example:

+begin_src nix

{

Exclude archived subtrees

processLines = excludeHeadlines (matchOrgTag "ARCHIVE");

}

+end_src

You can use the following predicates from this library: