summaryrefslogtreecommitdiff
path: root/support/arara/scripts/rules/knitr.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'support/arara/scripts/rules/knitr.yaml')
-rw-r--r--support/arara/scripts/rules/knitr.yaml58
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")'