Course website that serves Markdown from a git repository
Ruby JavaScript HTML CSS CoffeeScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Course website

This site serves courses that reside in a git repo consisting of mostly Markdown-formatted text files and any other source files that should be served to the students. Ruby 1.9 with Rails 4.0 is required.

How to install

Clone the application:

git clone
bundle install
rake db:schema:load

You can now claim the site by authenticating, and then load the initial content by specifiying a git repository URL that can be cloned.

Alternatively, you can clone the course contents yourself, into the public/course directory:

cd public
git clone <course-url> course

On the source format

  • Have a look at for information on how to organize your course repository. At the very least, you need a course.yml and a info directory containing subpages for the homepage.

  • Numbering the course folders will make sure that they are imported and displayed in order. Any folders besides info that are not numbered will not be imported.

  • Small non-markdown files, like images or downloads, will be hosted directly in the public directory and can be referenced using relative links.

  • Changing the name of a folder will change the URL of that folder on the website. This will break links from other sites to your course site.

  • Changing names and positions of folders and Markdown files should not be a problem for form caching and file submissions already done.

Formatting your pages

  • All pages are to be formatted with Markdown and the Kramdown extensions.

  • You can use AsciiMath if enclosed within pairs of dollar signs ($$). Check the AsciiMath syntax.

  • Add a table of contents to a page using:

      * Table of Contents

    This single bullet item is then replaced with a full table of contents of level 1 and 2 headings.

  • Add a content delivery network server by adding a link to it in course.yml:


    Then, any link starting with cdn:// will be rewritten to start with that exact cdn url.

  • Use videoplayer as the alt text for an image link in order to generate a video player:


Admin configuration options

  • Setting a DROPBOX_KEY and DROPBOX_SECRET will allow the admin user to connect their Dropbox account to the course site.

  • Setting an COURSESITE_API_TOKEN will allow another website to import some data from a special endpoint.

  • Setting a CAS_BASE_URL is needed for authentication. You can optionally set a CAS_FAKE_USER to prevent CAS roundtrips during testing.

  • Setting a MAILER_ADDRESS and MAILER_DOMAIN will allow mails to be sent to users.

Some stuff we still want

  • Allow the course to be hosted in dropbox.
  • Support some other authentication mechanism than CAS only.