MASS home

GitHub is well known as a 'social coding' site integrated with the version management software git). It's user friendly user interface and low price (it's free!) have led to explosive growth in its use over the last few years. Now GitHub is the de facto home of some of the most exciting free software projects on the planet including QGIS and the daddy of all open source software projects, Linux.

Fewer people know that GitHub can also act as a free shared (as opposed to dedicated) webserver. This short article explains how.

Creating the online repository

GitHub is mostly accessed through the secure https:// hypertext transfer protocol, which is encrypted. However, when you put content into a special place in GitHub, it is served via the unencrypted and much more accessible http:// protocol.

username.github.io

This special place is a repository called username.github.io. So if my username is robinlovelace, for example, my 'gh-pages' repository should be named robinlovelace.github.io. This is indeed the case.

Now, anything that I put inside this repository is automatically published to the internet at http://robinlovelace.github.io/. Now, clicking on that you will see that it redirects you elsewhere, but that's just because I've set up a redirect. The MassAtLeeds user, for example, has the following website address: http://massatleeds.github.io/ . So username would have the home address of http://username.github.io. You get the idea!

Jekyll

All GitHub pages are pre-processed by Jekyll, a static website system. This is not the place to describe Jekyll: check out their excellent home page, tutorials and try it.

To sum-up Jekyll, it allows you to build a website in the normal way with html or intelligently, using the _config.yml file and markdown (.md) files. In fact, this post is simply a .md file placed in MassAtLeeds.github.io!

prose.io

Another useful thing about GitHub that not everyone knows is that it has a diverse plugin 'ecosystem'. Third parties can gain access your accout and do useful things like create online mass-editable maps via geojson.io. Another useful plugin which makes adding content to GitHub pages even easier, is prose.io. This, and the entire processes of publishing collaborative content using GitHub is described in the video below.

Conclusion

Git frequently amazes new users with its capabilities. GitHub is the online extension of this that can provide what feels like superpowers to the collaborative coder. Clearly this is useful to programmers and makes it easier than ever to contribute to and produce digital content available to anyone. It also has great potential to help academics, sometimes accused of sitting in ivory towers, engage with wider online communities and make their work and reproducible results available to the public.