how to tell if code is executed within a knitr/rmarkdown context?

前端 未结 3 414
忘了有多久
忘了有多久 2021-01-03 21:40

Based on some simple tests, interactive() is true when running code within rmarkdown::render() or knitr::knit2html(). That is, a simp

3条回答
  •  囚心锁ツ
    2021-01-03 22:08

    A simpler suggestion for rolling your own: see if you can access current chunk options.

    ```{r, echo = FALSE}
    inside_knitr = function() {
        length(knitr::opts_current$get()) > 0
    }
    ```
    
    ```{r}
    inside_knitr()
    ```
    

    There are, of course, many things you could check. I like the idea of the current chunk options, another possibility is below. I'm not really sure about the pros/cons of either.

    ```{r}
    !is.null(knitr::opts_knit$get("out.format"))
    ```
    

提交回复
热议问题