diff options
Diffstat (limited to 'support/arara/scripts/rules/knitr.yaml')
-rw-r--r-- | support/arara/scripts/rules/knitr.yaml | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/support/arara/scripts/rules/knitr.yaml b/support/arara/scripts/rules/knitr.yaml new file mode 100644 index 0000000000..da17289db2 --- /dev/null +++ b/support/arara/scripts/rules/knitr.yaml @@ -0,0 +1,58 @@ +!config +# Arara, the cool TeX automation tool +# Copyright (c) 2020, Island of TeX +# All rights reserved. +# +# This rule is part of arara. +identifier: knitr +name: knitr +authors: +- Adam Liter +- Island of TeX +commands: +- name: knitr + command: > + @{ + elements = []; + if (!isEmpty(tangle)) elements.add('tangle = ' + tangle); + if (!isEmpty(quiet)) elements.add('quiet = ' + quiet); + elements.add('envir = ' + envir); + elements.add('encoding = ' + encoding); + return getCommand('Rscript', '-e', + 'library(knitr); knit("' + file + '", ' + + 'output = ' + isEmpty(output, 'NULL', '"' + output + '"') + ', ' + + String.join(', ', elements) + ')'); + } +arguments: +- identifier: output + flag: > + @{ + return parameters.output; + } +- identifier: tangle + flag: > + @{ + if(isTrue(parameters.tangle) && !parameters.containsKey('output')) { + throwError('If you want to tangle the document, specify an output file.'); + } + else { + isTrue(parameters.tangle, 'TRUE', 'FALSE') + } + } +- identifier: quiet + flag: > + @{ + isTrue(parameters.quiet, 'TRUE', 'FALSE') + } +- identifier: envir + flag: > + @{ + return parameters.envir; + } + default: 'parent.frame()' +- identifier: encoding + flag: > + @{ + return parameters.encoding; + } + default: 'getOption("encoding")' |