This lesson is still being designed and assembled (Pre-Alpha version)

Building Websites with Jekyll and GitHub/GitLab

Before following this lesson, learners should be able to:

  • create a repository/project on [GitHub][github] and/or GitLab.
  • clone a local copy of a project with Git, add and commit modified files, and push/pull changes between local and remote repositories.
  • execute commands in the shell

If you’d like to learn any of the skills listed above, the Software Carpentry lessons on the Shell and Git are a good place to start.

For those already familiar with the ways that Git and an online platform like GitHub can help them track and compare changes to flat text files, and collaborate with others on projects, GitHub and GitLab Pages provide a cost-free way to build and host webpages. This approach is commonly used to provide documentation on software projects, and to create blogs and websites for individuals and organisations already used to working with the Git/GitHub toolset for their other projects. However, for those taking their first steps towards building sites like this, the process can be confusing and intimidating. This tutorial aims to address this, by providing a step-by-step guide to creating a collection of pages and combining them into a coherent site using a framework called Jekyll.

Target Audience

This lesson is aimed at researchers and research software engineers who use Git and GitHub or GitLab to manage versions of their scripts/files and want to learn how to adapt these skills to create web pages. The target learner already knows the basics of Git and can view the files, commits, and history of a project on GitHub and/or GitLab. They are comfortable writing and editing in a text editor, and can execute commands in the shell.

Learning Objectives

After following this lesson, learners will be able to:

Schedule

Setup Download files required for the lesson
00:00 1. Introduction What is static web content?
Why should I use GitHub or GitLab Pages to create my website?
00:00 2. Authoring with Markdown How can I write content for my webpages?
How do I link to other pages?
00:00 3. Hosting Pages on GitHub How do I publish my pages via GitHub?
00:00 4. Hosting Pages on GitLab How do I publish my pages via GitLab?
00:00 5. Starting with Jekyll How can I use values stored in variables in my pages?
How can I configure global values/settings for my site?
How can I reuse the same chunks of material in multiple pages?
00:00 6. Page Templates How can I design the layout for all pages on my site?
Where can I find pre-built themes for my site?
How can I create new layouts based on those I already have?
00:00 7. Working with Filters Key question (FIXME)
00:00 Finish

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