6.9 For hardcore HTML users

In Section 5.9, we mentioned that if you feel the constraint of Markdown (due to its simplicity) is too strong, you can embed code chunks in a pure LaTeX document instead of Markdown. Similarly, if you are familiar and comfortable with writing raw HTML code, you can intermingle code chunks with HTML, too. Such documents have the conventional filename extension .Rhtml.

In an Rhtml document, code chunks are embedded between <!--begin.rcode and end.rcode-->, and inline R expressions are embedded in <!--rinline -->. Below is a full Rhtml example. You can save it to a file named test.Rhtml, and use knitr::knit("test.Rhtml") to compile it. The output will be an HTML (.html) file. In RStudio, you can also hit the Knit button on the toolbar to compile the document.

<!DOCTYPE html>
<html>
<head>
  <title>A minimal knitr example in HTML</title>
</head>
<body>
<!--begin.rcode
  knitr::opts_chunk$set(fig.width=5, fig.height=5)
  end.rcode-->

  <p>This is a minimal example that shows
  how <strong>knitr</strong> works with pure HTML
  pages.</p>

  <p>Boring stuff as usual:</p>

<!--begin.rcode
    # a simple calculator
    1 + 1
    # boring random numbers
    set.seed(123)
    rnorm(5)
    end.rcode-->

  <p>We can also produce plots (centered by the
  option <code>fig.align='center'</code>):</p>

<!--begin.rcode cars-scatter, fig.align='center'
    plot(mpg ~ hp, data = mtcars)
    end.rcode-->

  <p>Errors, messages and warnings can be put into
  <code>div</code>s with different <code>class</code>es:</p>

<!--begin.rcode
    sqrt(-1)  # warning
    message('knitr says hello to HTML!')
    1 + 'a'  # mission impossible
    end.rcode-->

  <p>Well, everything seems to be working. Let's ask R what is
  the value of &pi;? Of course it is <!--rinline pi -->.</p>

</body>
</html>