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

后端 未结 4 1132
感情败类
感情败类 2020-11-27 12:09

What commands are run when pressing \"Knit HTML\" on an R Markdown file in Rstudio 0.96?

My motivation is that I might want to run the same command

4条回答
  •  迷失自我
    2020-11-27 12:49

    Basic Script

    So now that the R markdown package has been released, here is some code to replicate the features of Knit to Html.

    require(knitr) # required for knitting from rmd to md
    require(markdown) # required for md to html 
    knit('test.rmd', 'test.md') # creates md file
    markdownToHTML('test.md', 'test.html') # creates html file
    browseURL(paste('file://', file.path(getwd(),'test.html'), sep='')) # open file in browser 
    

    where test.rmd is the name of your R markdown file. Note that I'm not 100% confident about the browseURL line (hence my question here about opening files in a web browser).

    markdownToHTML Options

    The good thing about markdownToHTML is that there are heaps of options in how the HTML is created (see ?markdownHTMLOptions). So for example, if you want just a code fragment without all the header information, you could write:

    markdownToHTML('test.md', 'test.html', options='fragment_only')
    

    or if you don't like hard wrapping (i.e., inserting line breaks when there are single manual line breaks in the markdown source), you can omit the 'hard_wrap' option.

    # The default options are 'hard_wrap', 'use_xhtml', 
    #      'smartypants', and 'base64_images'.
    markdownToHTML('test.md', 'test.html', 
           options=c('use_xhtml', 'base64_images'))
    

    Makefile

    This could also all be added to a makefile perhaps using Rscript -e (e.g., something like this). Here's a basic example makefile I put together, where test indicates that the rmd file is called test.rmd.

    RMDFILE=test
    
    html :
        Rscript -e "require(knitr); require(markdown); knit('$(RMDFILE).rmd', '$(RMDFILE).md'); markdownToHTML('$(RMDFILE).md', '$(RMDFILE).html', options=c('use_xhtml', 'base64_images')); browseURL(paste('file://', file.path(getwd(),'$(RMDFILE).html'), sep=''))"
    

    The makefile uses my preferred markdown options: i.e., options=c('use_xhtml', 'base64_images')

提交回复
热议问题