Example lesson using The Carpentries lesson template.
Clone or download
rgaiacs Merge pull request #245 from maxim-belkin/fixups
06-style-guide.md: declare code block types
Latest commit d9031b2 Dec 14, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Nudge contributors to specify episodes unambigously Nov 14, 2018
_episodes 06-style-guide.md: add code block types Dec 13, 2018
_episodes_rmd Update 05-rmarkdown-example.Rmd Apr 18, 2018
_extras Remove root and page from YAML header May 23, 2018
_includes links.md: remove www from numfocus link Dec 7, 2018
_layouts add meta tag for carpentry type Dec 6, 2018
assets spelling corrections using en_US dictionary Aug 30, 2018
bin CONTRIBUTING.md: remove repetitive text Dec 4, 2018
code Preparing for June 2016 release Jun 20, 2016
data re-add ./data folder Jun 28, 2016
fig Fix SVG file for Firefox Feb 20, 2018
files Preparing for June 2016 release Jun 20, 2016
.editorconfig .editorconfig: code style guidelines for text editors Aug 21, 2018
.gitignore gitIgnore for R Jun 1, 2018
.mailmap Updating .mailmap and AUTHORS before release Aug 3, 2017
.travis.yml Update .travis.yml May 24, 2018
.update-copyright.conf .update-copyright.conf: Configure update-copyright Mar 28, 2015
AUTHORS Updating .mailmap and AUTHORS before release Aug 3, 2017
CITATION update URLs to reflect transfer to carpentries organization Jun 12, 2018
CODE_OF_CONDUCT.md merge styles v9.5.2 Jun 19, 2018
CONTRIBUTING.md CONTRIBUTING.md: sync up with upstream Dec 7, 2018
LICENSE.md Merge remote-tracking branch 'styles/gh-pages' into gh-pages Dec 7, 2018
Makefile only knit rmd files to md if they have changed Aug 21, 2018
README.md Change SWC lesson template to The Carpentries Nov 27, 2018
_config.yml Move brand to the Carpentries Jun 22, 2018
aio.md aio.md: sync up with upstream Dec 7, 2018
index.md index.md: sync up with upstream Dec 7, 2018
reference.md Remove root from YAML May 23, 2018
requirements.txt Merging from new styles Jun 15, 2016
setup.md Reflect Apple's rebranding Sep 1, 2018



This repository shows how to create a lesson using The Carpentries lesson template, and is itself an example of the use of that template. Please see https://carpentries.github.io/lesson-example/ for a rendered version of this material, including detailed instructions on design, setup, and formatting.

Quick Instructions

  1. Do not fork this repository directly on GitHub. Instead, please follow the instructions in the setup instructions to create a repository for your lesson by importing material from the styles repository.

  2. Once you have created your repository, run bin/lesson_initialize.py to create standard lesson-specific files. You must edit several values in _config.yml so that GitHub Pages will render your lesson correctly.

  3. Please read the episodes of this lesson to format your material.

  4. Please keep the master copy of your lesson in your repository's gh-pages branch, since that is what is automatically published as a website by GitHub.

  5. To preview material, please run make serve from the command line to launch Jekyll with the correct parameters, or push to your repository's gh-pages branch and let GitHub take care of the rendering.

  6. Run make lesson-check to check that your files follow our formatting rules.

  7. If you find an error or omission in this documentation, please file an issue in this repository. If you find an error or omission in the lesson template, please file an issue in the styles repository instead.


The layout of this repository is explained in this site's episodes. In brief:

  1. The source for pages that appear as top-level items in the navigation bar are stored in the root directory, including the home page (index.md), the reference page (reference.md), and the setup instructions (setup.md).

  2. Source files for lesson episodes are stored in _episodes; _episodes/01-xyz.md generates /01-xyz/index.html, which can be linked to using /01-xyz/.

  3. If you are writing lessons in R Markdown, source files go in _episodes_rmd. You must run make lesson-rmd to turn these into Markdown in _episodes and commit those Markdown files to the repository (since GitHub won't run anything except Jekyll to format material). You must also commit any figures generated from your lessons, which are stored in the fig directory.

  4. Files that appear under the "extras" menu are stored in _extras.

  5. Figures are stored in the fig directory, data sets in data, source code in code, and miscellaneous files in files.

Getting Started

  1. Run bin/lesson_initialize.py to create files that can't be stored in the template repository (because they would cause repeated merge conflicts), then edit _config.yml as described in the documentation.

  2. Run make lesson-check at any time to check that your lesson files follow our formatting rules. If you come across formatting issues that the checker doesn't report, please file an issue in the styles repository.

  3. For a list of helpful commands run make in this directory. If you are looking for things to work on, please see the list of issues for this repository.