Skip to contents

This function orchestrates rendering generated lesson content and applying the theme for the HTML site.

Usage

build_lesson(
  path = ".",
  rebuild = FALSE,
  quiet = !interactive(),
  preview = TRUE,
  override = list()
)

Arguments

path

the path to your repository (defaults to your current working directory)

rebuild

if TRUE, everything will be built from scratch as if there was no cache. Defaults to FALSE, which will only build markdown files that haven't been built before.

quiet

when TRUE, output is supressed

preview

if TRUE, the rendered website is opened in a new window

override

options to override (e.g. building to alternative paths). This is used internally and will likely be changed.

Value

TRUE if it was successful, a character vector of issues if it was unsuccessful.

Details

Structure of a Workbench Lesson

A Carpentries Workbench lesson is comprised of a set of markdown files and folders:

+-- config.yaml
+-- index.md
+-- episodes
|   +-- data
|   +-- fig
|   +-- files
|   \-- introduction.Rmd
+-- instructors
|   \-- instructor-notes.md
+-- learners
|   \-- setup.md
+-- profiles
|   \-- learner-profiles.md
+-- links.md
+-- site
    \-- [...]
+-- renv
|   \-- [...]
+-- CODE_OF_CONDUCT.md
+-- CONTRIBUTING.md
+-- LICENSE.md
\-- README.md

See also

serve(): an interactive way to build and edit lesson content.

Examples


tmp <- tempfile()
create_lesson(tmp, open = FALSE, rmd = FALSE)
#> → Creating Lesson in /tmp/Rtmpy58M2t/file18761d3b781e...
#>  No schedule set, using Rmd files in episodes/ directory.
#> → Creating Lesson in /tmp/Rtmpy58M2t/file18761d3b781e...

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

#> ────────────────────────────────────────────────────────────────────────
#> → Creating Lesson in /tmp/Rtmpy58M2t/file18761d3b781e...

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

#>  Edit '/tmp/Rtmpy58M2t/file18761d3b781e/episodes/introduction.md'
#>  First episode created in /tmp/Rtmpy58M2t/file18761d3b781e/episodes/introduction.md
#> → Creating Lesson in /tmp/Rtmpy58M2t/file18761d3b781e...

#>  Workflows up-to-date!
#> → Creating Lesson in /tmp/Rtmpy58M2t/file18761d3b781e...

#>  Lesson successfully created in /tmp/Rtmpy58M2t/file18761d3b781e
#> → Creating Lesson in /tmp/Rtmpy58M2t/file18761d3b781e...

#> /tmp/Rtmpy58M2t/file18761d3b781e
create_episode("first-script", path = tmp, open = FALSE)
#>  Edit '/tmp/Rtmpy58M2t/file18761d3b781e/episodes/first-script.Rmd'
#> /tmp/Rtmpy58M2t/file18761d3b781e/episodes/first-script.Rmd
check_lesson(tmp)
build_lesson(tmp)
#> ── Initialising site ───────────────────────────────────────────────────
#> Copying
#> ../../../../home/runner/work/_temp/Library/pkgdown/BS3/assets/bootstrap-toc.css,
#> ../../../../home/runner/work/_temp/Library/pkgdown/BS3/assets/bootstrap-toc.js,
#> ../../../../home/runner/work/_temp/Library/pkgdown/BS3/assets/docsearch.css,
#> ../../../../home/runner/work/_temp/Library/pkgdown/BS3/assets/docsearch.js,
#> ../../../../home/runner/work/_temp/Library/pkgdown/BS3/assets/link.svg,
#> ../../../../home/runner/work/_temp/Library/pkgdown/BS3/assets/pkgdown.css,
#> and
#> ../../../../home/runner/work/_temp/Library/pkgdown/BS3/assets/pkgdown.js
#> to bootstrap-toc.css, bootstrap-toc.js, docsearch.css, docsearch.js,
#> link.svg, pkgdown.css, and pkgdown.js
#> Copying
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/android-chrome-192x192.png,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/android-chrome-512x512.png,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/apple-touch-icon.png,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/Mulish-Bold.ttf,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/Mulish-Bold.woff,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/Mulish-ExtraBold.ttf,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/mulish-v5-latin-regular.eot,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/mulish-v5-latin-regular.svg,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/mulish-v5-latin-regular.ttf,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/mulish-v5-latin-regular.woff,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/mulish-v5-latin-regular.woff2,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/mulish-variablefont_wght.woff,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/fonts/mulish-variablefont_wght.woff2,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/images/carpentries-logo-sm.svg,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/images/carpentries-logo.svg,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/images/data-logo-sm.svg,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/images/data-logo.svg,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/assets/images/dropdown-arrow.svg,
#> …,
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/safari-pinned-tab.svg,
#> and
#> ../../../../home/runner/work/_temp/Library/varnish/pkgdown/assets/site.webmanifest
#> to android-chrome-192x192.png, android-chrome-512x512.png,
#> apple-touch-icon.png, assets/fonts/Mulish-Bold.ttf,
#> assets/fonts/Mulish-Bold.woff, assets/fonts/Mulish-ExtraBold.ttf,
#> assets/fonts/mulish-v5-latin-regular.eot,
#> assets/fonts/mulish-v5-latin-regular.svg,
#> assets/fonts/mulish-v5-latin-regular.ttf,
#> assets/fonts/mulish-v5-latin-regular.woff,
#> assets/fonts/mulish-v5-latin-regular.woff2,
#> assets/fonts/mulish-variablefont_wght.woff,
#> assets/fonts/mulish-variablefont_wght.woff2,
#> assets/images/carpentries-logo-sm.svg,
#> assets/images/carpentries-logo.svg, assets/images/data-logo-sm.svg,
#> assets/images/data-logo.svg, assets/images/dropdown-arrow.svg, …,
#> safari-pinned-tab.svg, and site.webmanifest
#>  Previewing site