What Is a Neat Command Line Equivalent to Rstudio's Knit HTML

What is a neat command line equivalent to RStudio's Knit HTML?

rmarkdown::render("test.Rmd", "html_document")

How to convert R Markdown to HTML? I.e., What does Knit HTML do in Rstudio 0.96?

Put Sys.sleep(30) in a chunk and you will see clearly what commands are called by RStudio. Basically they are

  1. library(knitr); knit() to get the markdown file;
  2. RStudio has internal functions to convert markdown to HTML;

The second step will be more transparent in the next version of the markdown package. Currently you can use knitr::knit2html('your_file.Rmd') to get a similar HTML file as RStudio gives you.


Update on 2019/09/17: The above answer applies to RStudio v0.96 (in the year 2012). Now R Markdown is compiled through rmarkdown::render(), which uses Pandoc instead of the retired R package markdown. See the post Relationship between R Markdown, Knitr, Pandoc, and Bookdown for more details.

Is there a global command line knit option as eval=FALSE for all chunks?

You do not need to edit the .Rmd file. You can just run

knitr::opts_chunk$set(eval = FALSE)

before running knitr::knit(); knitr will respect the global chunk options you set before calling knitr::knit().

Is it possible to knit an R Markdown file only to a preview window/pane in RStudio without saving an html file?

I don't know of a way to attach this to the knit button, but you could write a function that does this:

  • get the current file open in the edit pane. This answer gives details on that.
  • run rmarkdown::render() with the output_dir argument set the way you want.

You can attach this function to a keyboard shortcut in RStudio using these instructions.

Here's a simple version of the function:

  knit2 <- function(filename = rstudioapi::getSourceEditorContext()$path,
output_dir = tempdir()) {
result <- rmarkdown::render(filename, output_dir = output_dir)
getOption("viewer")(result)
}

Simply call knit2(), and the output will be written to tempdir(), which means the preview will appear in the Viewer pane. If you want it to write to "results", call it as

knit2(output_dir = "results")

If that's not a subdirectory of tempdir(), the preview will appear in an external browser.

How can I knit a Rmarkdown file into a html file which embeds plots?

What is the equivalent commands to RStudio's "knit to html" button?

Submit your output in a YAML header and then use

rmarkdown::render("Your-RMD-file.Rmd")

Or see the documentation for the render function and their arguments.

Diff file loses HTML formatting when run from command line vs RStudio

By default diffFile() behaves differently depending on if R is in interactive mode or not so you need to use the argument interactive = TRUE to get the same result as you would from the console.

Using the function example from the documentation:

library("diffobj")

file_name_diff <- "C:\\Path\\to\\file\\diff.html"

url.base <- "https://raw.githubusercontent.com/wch/r-source"
f1 <- file.path(url.base, "29f013d1570e1df5dc047fb7ee304ff57c99ea68/README")
f2 <- file.path(url.base, "daf0b5f6c728bd3dbcd0a3c976a7be9beee731d9/README")

res <- diffFile(f1,
f2,
mode = "sidebyside",
format = "html",
interactive = TRUE)

writeLines(as.character(res), file_name_diff)

R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?

As Eric pointed out in the comments, if you're willing to forego the convenience of the Knit HTML button (which produces HTML files that live alongside your .Rmd), you can just call rmarkdown::render directly.

However, if you really need to customize your workflow, you can override the Knit HTML button to run whatever command you via the rstudio.markdownToHTML option. This command could invoke rmarkdown with specific options (such as output directory) and perform other pre- or post-processing tasks. Documentation here:

https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering

Note that setting the rstudio.markdownToHTML option will turn off some of the newer RMarkdown V2 integration features baked into RStudio, since RStudio will no longer be able to infer what engine is being used to render the document.



Related Topics



Leave a reply



Submit