---
title: "Knitr Chunk Engine"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Knitr Chunk Engine}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

```{r}
library(details)
```

# r chunk engine

Using `details` in a standard `r` chunk is simple. There is a built in print method that handles all the different types of outputs. These methods are shown in the other vignettes. It basically looks like this:

```{r}
details::details({
  x <- 1
  x * 2
},summary = 'click to see eval')
```

This is nice but leaves a lot of busy work if you want to hide the use of `details` in the output.

One chunk to show the code with `eval` set to FALSE

```{r,eval = FALSE}
  x <- 1
  x * 2
```

Another chunk with `echo` set to `FALSE` to create the `details` output

```{r,echo = FALSE}
details::details({
  x <- 1
  x * 2
},summary = 'click to see eval')
```

When you have multiple chunks in the document it can get very cumbersome and maintance instensive.

# details chunk engine

To solve this problem there is now a `details` chunk engine that will take care of all that work for you.

We add a few chunk options to control the `details` output:

|Option|Default|
|:-|:-:|
|details.lang|'r'|
|details.summary|NULL|
|details.tooltip|'Click to Open'|
|details.open|FALSE|
|details.imgur|FALSE|

Lets take the same example, this time we will use the `details` engine

## Default

we evaluate the following chunk

````markdown
`r ''````{details}
x <- 1
x * 2
```
````

By Default echo = `TRUE` will act just like a regular chunk echo and print put what goes into the `details` call.

### Output

```{details}
x <- 1
x * 2
```

## Without Echo

````markdown
`r ''````{details, echo = FALSE, details.summary = 'open to see eval'}
x <- 1
x * 2
```
````

We can set echo = `FALSE` and only return the details output

### Output

```{details, echo = FALSE, details.summary = 'open to see eval'}
x <- 1
x * 2
```

## Open with Echo

We can set the details block to be open by setting the details.open to `TRUE`

````markdown
`r ''````{details,details.summary = 'click to hide eval',details.open = TRUE}
x <- 1
x * 2
```
````

### Output

```{details,details.summary = 'click to hide eval',details.open = TRUE}
x <- 1
x * 2
```

## Tooltip

We can remove the tooltip by setting `details.tooltip` to NULL

````markdown
`r ''````{details,details.summary = 'click to see eval',details.tooltip = NULL}
x <- 1
x * 2
```
````

### Output

```{details,details.summary = 'click to see eval',details.tooltip = NULL}
x <- 1
x * 2
```

## file contents with no highlighting

We can print out the contents of a file by putting the path in the chunk and control the highlighting language with `details.lang`

````markdown
`r ''````{details,echo = FALSE, details.lang = '',details.summary = 'open to see contents'}
"../DESCRIPTION"
```
````

### Output

```{details,echo = FALSE, details.lang = '',details.summary = 'open to see contents'}
'../DESCRIPTION'
```

## Figures

Message: This feature has been deprecated in Win OS.


````markdown
`r ''````{details}
plot(1:10,1:10)
```
````

### Output

```{details}
plot(1:10,1:10)
```