divide_chunk: Divide chunk options from the code chunk body

View source: R/knitr.R

divide_chunkR Documentation

Divide chunk options from the code chunk body

Description

Chunk options can be written in special comments (e.g., after ⁠#|⁠ for R code chunks) inside a code chunk. This function partitions these options from the chunk body.

Usage

divide_chunk(engine, code, strict = FALSE, ...)

Arguments

engine

The name of the language engine (to determine the appropriate comment character).

code

A character vector (lines of code).

strict

If FALSE, allow chunk options to be written after ⁠#|⁠ even if ⁠#⁠ is not the comment character of the engine (e.g., when engine = 'js'), otherwise throw an error if ⁠#|⁠ is detected but ⁠#⁠ is not the comment character.

...

Arguments to be passed to yaml_load().

Value

A list with the following items:

  • options: The parsed options (if there are any) as a list.

  • src: The part of the input that contains the options.

  • code: The part of the input that contains the code.

Note

Chunk options must be written on continuous lines (i.e., all lines must start with the special comment prefix such as ⁠#|⁠) at the beginning of the chunk body.

Examples

# parse yaml-like items
yaml_like = c("#| label: mine", "#| echo: true", "#| fig.width: 8", "#| foo: bar",
    "1 + 1")
writeLines(yaml_like)
xfun::divide_chunk("r", yaml_like)

# parse CSV syntax
csv_like = c("#| mine, echo = TRUE, fig.width = 8, foo = 'bar'", "1 + 1")
writeLines(csv_like)
xfun::divide_chunk("r", csv_like)

xfun documentation built on April 3, 2025, 7:04 p.m.