knit_engines {knitr} | R Documentation

## Engines of other languages

### Description

This object controls how to execute the code from languages other than R (when the chunk option `engine` is not `'R'`). Each component in this object is a function that takes a list of current chunk options (including the source code) and returns a character string to be written into the output.

### Usage

    knit_engines

### Format

An object of class `list` of length 5.

### Details

The engine function has one argument `options`: the source code of the current chunk is in `options$code`. Usually we can call external programs to run the code via `system2`. Other chunk options are also contained in this argument, e.g. `options$echo` and `options$eval`, etc.

In most cases, `options$engine` can be directly used in command line to execute the code, e.g. `python` or `ruby`, but sometimes we may want to specify the path of the engine program, in which case we can pass it through the `engine.path` option. For example, `engine='ruby', engine.path='/usr/bin/ruby1.9.1'`. Additional command line arguments can be passed through `options$engine.opts`, e.g. `engine='ruby', engine.opts='-v'`.

See `str(knitr::knit_engines$get())` for a list of built-in language engines.

### Note

The Leiningen engine `lein` requires lein-exec plugin; see https://github.com/yihui/knitr/issues/1176 for details.

### References

Usage: https://yihui.name/knitr/objects/; examples: https://yihui.name/knitr/demo/engines/

### Examples

    knit_engines$get("python")
    knit_engines$get("awk")
    names(knit_engines$get())

[Package knitr version 1.22 Index]