Skip to contents

This will create a boilerplate directory structure for a Carpentries lesson and initialize a git repository.

Usage

create_lesson(
  path,
  name = fs::path_file(path),
  rmd = TRUE,
  rstudio = rstudioapi::isAvailable(),
  open = rlang::is_interactive()
)

Arguments

path

the path to the new lesson folder

name

the name of the lesson. If not provided, the folder name will be used.

rmd

logical indicator if the lesson should use R Markdown (TRUE, default), or if it should use Markdown (FALSE). Note that lessons can be converted to use R Markdown at any time by adding a file with the .Rmd file extension in the lesson.

rstudio

create an RStudio project (defaults to if RStudio exits)

open

if interactive, the lesson will open in a new editor window.

Value

the path to the new lesson

Examples

tmp <- tempfile()
on.exit(unlink(tmp))
lsn <- create_lesson(tmp, name = "This Lesson", open = FALSE)
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...
#>  No schedule set, using Rmd files in episodes/ directory.
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

#> To remove this message, define your schedule in config.yaml or use `set_episodes()` to generate it.
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

#> ────────────────────────────────────────────────────────────────────────
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

#>  To save this configuration, use
#> 
#> set_episodes(path = path, order = ep, write = TRUE)
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

#>  First episode created in /tmp/RtmpsPBux1/file1a88316aef6f/episodes/introduction.Rmd
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

#>  Workflows up-to-date!
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

#>  Consent to use package cache provided
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

#> → Searching for and installing available dependencies
#> * Discovering package dependencies ... Done!
#> * Copying packages into the library ... Done!
#> → Recording changes in lockfile
#> The version of R recorded in the lockfile will be updated:
#> - R           [*] -> [4.2.2]
#> 
#> The following package(s) will be updated in the lockfile:
#> 
#> # RSPM ===============================
#> - R6          [* -> 2.5.1]
#> - base64enc   [* -> 0.1-3]
#> - bslib       [* -> 0.4.2]
#> - cachem      [* -> 1.0.6]
#> - cli         [* -> 3.6.0]
#> - digest      [* -> 0.6.31]
#> - ellipsis    [* -> 0.3.2]
#> - evaluate    [* -> 0.20]
#> - fastmap     [* -> 1.1.0]
#> - fs          [* -> 1.6.0]
#> - glue        [* -> 1.6.2]
#> - highr       [* -> 0.10]
#> - htmltools   [* -> 0.5.4]
#> - jquerylib   [* -> 0.1.4]
#> - jsonlite    [* -> 1.8.4]
#> - knitr       [* -> 1.42]
#> - lifecycle   [* -> 1.0.3]
#> - magrittr    [* -> 2.0.3]
#> - memoise     [* -> 2.0.1]
#> - mime        [* -> 0.12]
#> - rappdirs    [* -> 0.3.3]
#> - renv        [* -> 0.16.0]
#> - rlang       [* -> 1.0.6]
#> - rmarkdown   [* -> 2.20]
#> - sass        [* -> 0.4.5]
#> - stringi     [* -> 1.7.12]
#> - stringr     [* -> 1.5.0]
#> - tinytex     [* -> 0.43]
#> - vctrs       [* -> 0.5.2]
#> - xfun        [* -> 0.36]
#> - yaml        [* -> 2.3.7]
#> 
#> * Lockfile written to '/tmp/RtmpsPBux1/file1a88316aef6f/renv/profiles/lesson-requirements/renv.lock'.
#>  Lesson successfully created in /tmp/RtmpsPBux1/file1a88316aef6f
#> → Creating Lesson in /tmp/RtmpsPBux1/file1a88316aef6f...

lsn
#> /tmp/RtmpsPBux1/file1a88316aef6f