Setting up a Jekyll Blog on a Github Pages Subdirectory

Like many others, we at Codedge host our organization's website through
Github. Also like many, we wanted a development blog as well, but it creates interesting challenges when you need to host both at the same time. Simply placing all of the Jekyll files in a blog subdirectory leads to that dreaded email from Github immediately after your push:

"The page build failed with the following error"

But why?

The Solution

Looking through the Jekyll documentation, it turns out Github overrides source in _config.yml, which defines the top-level directory. Anything defined in a subdirectory is simply ignored, and there is absolutely no way around this.

So what to do? Make a new repository containing just the Jekyll files in the
top-level directory. This blog will be treated as a "project" website instead of an organization website, so remember to put everything on the gh-pages branch. Make sure in your _config.yml that baseurl is configured to /blog (or any other subdirectory of your choosing). Also, if you are using a custom domain, don't forget to copy the CNAME file from the original organization repository.

If everything pushes correctly, both your website and your blog should be
running concurrently!