Skip to main content

How to use github pages for optimized static website or game



Last week I have read post by Andrzej Mazur about hosting games on github pages and as this post covers things that were new to me I have recently found some nice tricks that can help with while working on these pages more effectively.

Source: http://enclavegames.com/blog/2014/02/02/host-your-html5-games-on-github-pages/

Now, what I mean?

To use github pages you must create new branch on github called gh-pages so you have to options:


  1. delete master and use only gh-pages
  2. push to gh-pages from time to time but work on master
Both have it's strong and weak points.
1: Working on gh-pages alone is easier but you will struggle to add any build process so you have to use unoptimized resources in your game.
2: You maintain some kind of optimized version of a site or game in gh-pages branch and use master branch as src. Downside of this approach is that you need two folders cloned from the same repository on disk and force build script to know about external directory structure. 

So are there any alternatives?

I think there is and it can be really easy to use :)

Idea is to use git subtree and have dist and src folders in master repository. The trick is to make dist folder point to gh-pages branch :)

I don't know who came up with this idea first but when I figured it out myself it was already solved by Yeoman community. 


To make dist folder point to gh-pages use:


git add dist && git commit -m "Initial dist subtree commit"

And to deploy:

git subtree push --prefix dist origin gh-pages


Remember that dist folder will be part of master branch as well so you can't have it in .gitignore file. When using any build tool like branch that generates .min.* files you need to commit them to master branch and push to gh-pages branch. Sometimes it may not be the best option, and it feels like committing binaries but in my opinion it is useful enough to still use it.

I you are using Bitbucket there is something similar there as well: https://confluence.atlassian.com/display/BITBUCKET/Publishing+a+Website+on+Bitbucket but there are some quirks so you must decide on your own.


Comments

Popular posts from this blog

Course Review: The Bitfountain iOS 8 with Swift Immersive

This is second big iOS learning project. For first one read iOS Programming book review. As I only have two of them done I have to compare them somehow.

I am mindful that it took me a really long time to finish it (since last autumn). For a couple of months this year I didn't even have the internet to learn it, so it could not be helped. But last half of the June I've spent watching the videos every day and managed to finish it before any new internet problems.

So how was it?
In my opinion, it's great if you're starting out. There are a lot of basics, and seeing how to do things in XCode just makes your learning much easier than looking at the photos in the book. On the other hand, learning is more shallow and it is much easier to just follow the videos and learn only the basics without bigger picture about iOS SDK. I somehow missed more challenging exercises (even though I don't like to do them ;)

Length:
Course it pretty long but many videos are quite short (1-2…

How to Learn when Life is Short

I haven't really think this through but I have read really interesting articles recently and I just wanted to write for myself later.

Life is Short by Paul Graham

It's just that, learn from people older that you what is most important, and that life actually is short...

Instead of Goals or Resolutions, Try Creating Rules by Leo Babuta

In the time of New Year Resolutions, it's good to read something that is proposing different way of achieving things. Still I see much more value in habits than setting goals. But...

The Easy Way To Learn Hard Stuff by Per Harald Borgen
It's something that I read from time to time and I know it works sometimes for me. The things I learn then are really learned and something Jakub Wasilewski  has told me many times to do. Still it's uncomfortable and for some reason, I have failed to use this method more than once or twice. Writing it here so maybe I can think about it more and figure out how to do that more often.

Towards an understandin…