The design of the knitr package is flexible enough to process any plain text documents in theory. Below are the three key components of the design:
1. a source parser
2. a code evaluator
3. an output renderer
The parser parses the source document and identifies computer code chunks as well as inline code from the document; the evaluator executes the code and returns results; the renderer formats the results from computing in an appropriate format, which will finally be combined with the original documentation.