github-course-starter

github-course-starter

Starter files for a Jekyll-based course website to host on GitHub, or elsewhere...

What’s Here

  • .gitignore: Files ignored by Git, such as the _site/ directory generated by jekyll --server --auto.
  • _config.yml: Configuration file for Jekyll and the course site. Start by entering your information here.
  • _includes/: Small pieces of HTML that get added to layouts
    • course_header.html: Include for the top of your course site pages
    • credits_and_licence.html: Include for the footer, with copyright, credits, license, etc.
    • instructor_info.html: Include for instructor information; outputs info from _config.yml
  • _layouts/: Layouts for generating site pages
    • default.html: Default layout for site pages
  • _starter.md: Basic page content file; customize the top portion and reuse for each new page.
  • .gitignore: File that tells Git to ignore certain files, to keep your repository clean.
  • assets/: Stylesheets, images, and other site assets
    • css/: Stylesheets
      • bootstrap-responsive.min.css: Minified Twitter Bootstrap stylesheet with responsive styles
      • bootstrap.min.css: Core Twitter Bootstrap styles
      • print.css: Print styles (custom); imports the two Bootstrap files
      • screen.css: Screen styles (custom)
    • img/: Images for your site
      • glyphicons-halflings-white.png: White Glyphicons packaged with Twitter Bootstrap
      • glyphicons-halflings.png: Black Glyphicons packaged with Twitter Bootstrap
    • js/: JavaScript files
      • bootstrap.min.js: Twitter Bootstrap JavaScript file (depends on jQuery, which is loaded from the Google Code API in the default.html layout file
      • html5shiv.js: HTML5 Shiv, a JavaScript file that enables older Internet Explorer browsers (prior to v. 9) to style HTML5 elements used in the default.html layout file
  • index.md: Content file for home page; treated as Course Calendar, but can be anything you like
  • README.md: You’re looking at it.

Setup

Mac:

Windows

Workshop Steps

  • Open up your Terminal (Mac) or Command Prompt (Win) and create a directory for your course websites: $ mkdir Courses
  • Change into that directory: $ cd Courses
  • Clone your forked repository by running $ git clone followed by the SSH link from your forked copy of this repository
  • Do lots of things to make your site; run $ git add FILENAMES replacing FILENAMES with a space-separated list of files and directories to add, followed by $ git commit -m "Descriptive message..." replacing Descriptive message... with a message describing the change to the files you added.
  • Create a new GitHub repo for your actual site; the name will determine the URL
  • Remove the original remote of your forked repo $ git remote rm origin
  • Add a new remote to your forked repo by running $ git remote add origin YOURURL replacing YOURURL with the SSH URL from your newly created remote
  • Push your course site to make it live $ git push origin gh-pages
  • Make more changes; commit them; then run git push origin gh-pages to make them live

Using a custom domain

  • Instead of using a domain name like http://username.github.com/repo-name/, you can use a custom domain or subdomain. Use your domain registrar’s control panel to set up either a CNAME or A Record, as described here
  • Then, create a text file called CNAME containing the domain or subdomain you set up with your domain registrar. For example, if you set up a CNAME record for http://course.example.com/``, the contents of your CNAME file will be course.example.com Add the file to your repository ($ git add CNAME&$ git commit -m "Added CNAME file for my custom domain"`) Give it time; it can take several hours for nameservers to correctly route your domain/subdomain to GitHub.

Desperate cries for help