### previous episode

### Lesson Title

### next episode

# Using RMarkdown

> ## Overview

> Teaching: 10 min
> Exercises: 2 min
> Questions

> - How to write a lesson using RMarkdown?

> Objectives

> - Explain how to use RMarkdown with the new lesson template.

> - Demonstrate how to include pieces of code, figures, and challenges.

This episode demonstrates all the features that can be used when writing a lesson in RMarkdown.

To generate the site, you will need to have the following packages installed:

    install.packages(c("knitr", "stringr", "checkpoint"))

If the lesson uses additional packages, the script that converts the Rmd files into markdown, will detect them and install them for you, when you run `make serve` or `make site`.

This first chunk is really important, and need to be included at the beginning of each episode written in RMarkdown.

    source("../bin/chunk-options.R")

The rest of the lesson should be written as a normal RMarkdown file. You can include chunk for codes, just like you’d normally do.

Normal output:

    1 + 1

    [1] 2

Output with error message:

    x[10]

    [1] NA

Output generating figures:

    library(ggplot2)
    ggplot(diamonds, aes(x = carat,  y = price, color = cut)) +
        geom_point()

For the challenges and their solutions, you need to pay attention to where the `>` go and where to leave blank lines. You can include code chunks in both the instructions and solutions. For instance this:

    > ## Challenge: Can you do it?
    >
    > What is the output of this command?
    >
    >
    > ~~~
    > paste("This", "new", "template", "looks", "good")
    > ~~~
    > {: .language-r}
    >
    > > ## Solution
    > >
    > >
    > > ~~~
    > > [1] "This new template looks good"
    > > ~~~
    > > {: .output}
    > {: .solution}
    {: .challenge}

will generate this:

> ## Challenge: Can you do it?

> What is the output of this command?

>     paste("This", "new", "template", "looks", "good")

> > ## Solution

> >     [1] "This new template looks good"

[workshop-repo]: [yaml]: http://yaml.org/

> ## Key Points

> - Edit the .Rmd files not the .md files

> - Run `make serve` to knit documents and preview lesson website locally

### previous episode

### next episode