Please do not fork this repository directly on GitHub. Instead, please use GitHub's importer following the instructions below to create a website repository for your workshop.
Please do your work in your repository's
gh-pagesbranch, since that is what is automatically published as a website by GitHub.
Once you are done, please send your repository's URL to the Software Carpentry administrator. We build the list of workshops on our websites from the data included in your
index.htmlpage. We can only do that if you customize that page correctly and send us a link to your workshop website.
If you run into problems, or have ideas about how to make this process simpler, please get in touch. The pages on customizing your website, the FAQ, and the design notes have more detail on what we do and why. And please note: if you are teaching Git, please create a separate repository for your learners to practice in.
Creating a Repository
Log in to GitHub. (If you do not have an account, you can quickly create one for free.) You must be logged in for the remaining steps to work.
Go to GitHub's importer.
Paste the url of this repo as the old repository to clone: https://github.com/swcarpentry/training-template.
Select the owner for your new repository. (This will probably be you, but may instead be an organization you belong to.)
Choose a name for your workshop website repository. This name should have the form
YYYY-MM-DDis the start date of the workshop.
Make sure the repository is public.
At this point, you should have a page like this:
You can now click "Begin Import". When the process is done, you will receive a message like "Importing complete! Your new repository gvwilson/2016-12-01-miskatonic is ready." and you can go to the new repository by clicking on the name.
Note: some people have had intermittent errors during the import process, possibly because of the network timing out. If you experience a problem, please re-try; if the problem persists, please get in touch.
Customizing Your Website
Go into your newly-created repository, which will be at
https://github.com/your_username/YYYY-MM-DD-site-ttt. For example, if your username is
gvwilson, the repository's URL will be
Edit the header of
index.htmlto customize the list of instructors, workshop venue, etc. You can do this in the browser by clicking on it in the file view on GitHub and then selecting the pencil icon in the menu bar:
Editing hints are embedded in
index.html, and full instructions are in the customization instructions.
Alternatively, if you are already familiar with Git, you can clone the repository to your desktop, edit
index.htmlthere, and push your changes back to the repository.
git clone -b gh-pages https://github.com/your_username/YYYY-MM-DD-site-ttt
You should specify
-b gh-pagesbecause the imported repository doesn't have a
In order to view your changes once you are done editing, you must push to your GitHub repository:
git push origin gh-pages
Note: please do all of your work in your repository's
gh-pagesbranch, since GitHub automatically publishes that as a website.
When you are done editing, go to the GitHub Pages URL for your workshop and preview your changes. In the example above, this is
Note: this template includes some files and directories that most workshops do not need, but which provide a standard place to put extra content if desired. See the design notes for more information about these.
Further instructions are available in the customization instructions. This FAQ includes a few extra tips (additions are always welcome) and these notes on the background and design of this template may help as well.
Checking Your Changes
If you want to preview your changes on your own machine before publishing them on GitHub, you can do so as described below.
Install the software described below. This may require some work, so feel free to preview by pushing to the website.
Run the command:
$ jekyll serve
and go to http://0.0.0.0:4000 to preview your site. You can also run this command by typing
make serve(assuming you have Make installed).
Run the command
python bin/workshop_check.py index.htmlto check for a few common errors in your workshop's home page. (You must have Python 3 installed to do this.) If you have Make installed, you can also run this command by typing
Creating Extra Pages
In rare cases,
you may want to add extra pages to your workshop website.
You can do this by putting either Markdown or HTML pages in the website's root directory
and styling them according to the instructions give in
the lesson template.
If you do this,
you must also edit
_config.yml to set these three values:
carpentryis either "dc" (for Data Carpentry) or "swc" (for Software Carpentry). This determines which logos are loaded.
titleis the title of your workshop (typically the venue and date).
carpentry and email
duplicate information that's inindex.html`,
but there is no way to avoid this
without requiring people to edit both files in the usual case
where no extra pages are created.
If you want to set up Jekyll so that you can preview changes on your own machine before pushing them to GitHub, you must install the software described below. (Note: Julian Thilo has written instructions for installing Jekyll on Windows.)
Ruby. This is included with Linux and Mac OS X; the simplest option on Windows is to use RubyInstaller. You can test your installation by running
ruby --version. For more information, see the Ruby installation guidelines.
RubyGems (the package manager for Ruby). You can test your installation by running
Jekyll. You can install this by running
gem install jekyll.
You can check the formatting of your header by running
(which is invoked by
You must have Python 3 installed in order to do this,
and you will also need the PyYAML module.
Setting Up a Separate Repository for Learners
If you are teaching Git, you should create a separate repository for learners to use in that lesson. You should not have them use the workshop website repository because:
your workshop website repository contains many files that most learners don't need to see during the lesson, and
you probably don't want to accidentally merge a damaging pull request from a novice Git user into your workshop's website while you are using it to teach.
You can call this repository whatever you like, and add whatever content you need to it.