I asked Github and Sass and CoffeeScript support will apparently also work for regular (non-Jekyll) pages on the `gh-pages` branch if you put dashes at the top of the file you want to be processed.
To be specific, all sites are processed through Jekyll, unless you add a `.nojekyll` file. Non-Jekyll files (like HTML or CSS) are passed transparently through Jekyll untouched. Adding the dashes to the file header simply tells Jekyll to work its magic.
I was just yesterday wondering why Kramdown wasn't the default. Among other things, it supports Mathjax. Then I came across this in the announcement:
"Kramdown as the default Markdown engine - In addition to better error handling, Kramdown supports MathJax, fenced code blocks, nested lists, tables, and much more."
When you run Jekyll, it spits out an `_site` folder - which is the generated HTML/CSS/JS of your site. Locally, when you run the Jekyll server it generates the site and then serves from that folder for you to preview.
With GitHub pages, you push a repository containing the Markdown files, but not the full generated site. On GitHub's server it generates the site and then serves it. You will want to add the `_site` folder to your `.gitignore`.
As said, they are generated on Github. There are online content editors like http://prose.io and http://tinypress.co (for Github page blogging) though.
As an aside, if your Jekyll workflow requires custom plugins (which Github doesn't support), you can always generate the site locally and push the contents of the _site folder to Github.
Pages are generated on Github servers. As somebody mentioned you can run Jekyll locally to preview the rendered pages or simply push to github and review online.
I was planning to write a guide on this... you know, some day...
From what I understand, Jekyll (the web site builder) automatically runs on their end. And, as the other poster mentioned, you can simulate the result of this by running a local copy of Jekyll on your local checkout.
But in the end, only the Jekyll input configuration/source data is required. The rest is optional.
It looks like you just commit plaintext files (or markdown, or any of several other formats) into your repo and they get built into HTML by jekyll and hosted as articles on your site.
Source: https://twitter.com/benbalter/status/494533173699543041
Documentation: http://jekyllrb.com/docs/assets/