Lesson Title

New Lesson Infrastructure Coming May 2023

Our new lesson infrastructure, The Carpentries Workbench is currently undergoing beta testing and will become default for official Carpentries lessons in May 2023.

This new infrastructure is designed to be more accessible and easier to use than the styles infrastructure by separating tools from the content.

If you would like to create a new lesson, we encourage you to use The Workbench.


For guidelines on how to develop curriculum content, please visit The Carpentries Curriculum Development Handbook.

This lesson shows how to use The Carpentries lesson template. The materials below assume familiarity with tools such as GitHub, Markdown, and Jekyll. For more guidance, please visit the Technological introductions section of The Carpentries Curriculum Development Handbook.

For guidelines on how to help improve our lessons and this template, please see the contribution guidelines; for guidelines on how to set up your machine to preview changes locally, please see the setup instructions.


Use the .prereq style to specify prerequisites.

Ten Things You Need To Know

  1. Don’t panic.
  2. Create a new lesson by using GitHub Import, not by forking.
  3. Run bin/lesson_initialize.py once in a new lesson repository to set up standard files.
  4. Run make lesson-check to check that the lesson is formatted correctly.
  5. Put lesson episodes in _episodes (or _episodes_rmd if you are writing in RMarkdown).
  6. Run make serve to preview the lesson website locally.
  7. Do not commit the generated HTML files in the _site directory.
  8. Style blocks and code samples by putting {: .stylename} on a newline after the block or code.
  9. Put solutions inside challenges using nested blockquotes.
  10. File issues and template fixes in the styles repository, and enhancements to this documentation in this one.


Setup Download files required for the lesson
00:00 1. Lesson Design How do we design lessons?
00:00 2. GitHub, Markdown, and Jekyll How are pages published?
00:10 3. Lesson Organization How are the files in a lesson organized?
00:20 4. Formatting How are The Carpentries lessons formatted?
00:30 5. Using RMarkdown How do I write a lesson using RMarkdown?
00:42 6. Style Guide What style should be used for Carpentries lessons?
How are keyboard key combinations written?
How are short spans of code written?
00:52 7. Checking and Previewing How can lesson formatting be checked?
How can lessons be previewed?
00:57 8. Coffee Break Break
01:12 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.