Hello world! / 大嘎吼啊！
I have been looking for ways to build a personal homepage for a long time. The two common practices adopted by people around me, however, does not satisfy my needs.
Disadvantages of using existing CMSes
One common practice, not only adopted in academic area but also used by bloggers, is to use an existing content management system (CMS), such as WordPress or ghost. I only take two common open-source CMSes as examples, but there are lots of them. Although there exist some minor differences between the features of those choices, they are mature systems and provide handy graphical user interface (GUIs) for daily update.
Nevertheless, using CMS for my purpose has the following disadvantages and thus not suitable.
- None of those CMSes works without a database system and a web server.
- I do have several Virtual Private Server (VPS) servers running and it’s easy to set up the web server as well as the database, but
- I have dedicated those servers to other purposes and do not want to increase their load.
- Moreover, setting them up is easy, but backing up the contents and migrating them in the future is not.
- The codes are heavy, and it takes some time to DIY them.
- I am a geek.
- I want to speed-up the access by using Content Delivery Network (CDN).
- Time is precious for you and me, isn’t it?
Disadvantages of using html and templates
Another way of setting up a personal page is to use simple html and templates. As a convention, most researchers do this for simplicity. Simplicity is what I want, as mentioned above. However, I set up my homepage for more than my bio and publications (though there are not many now). I enjoy sharing my thoughts with readers, but a rigid page style will most likely make readers feel boring and even sleepy.
Therefore, I choose jekyllrb at last. It works in an ideal and simple way: I write my posts in Markdown, and push them to my GitHub repository. Jekyllrb generates html pages using the markdown and templates and update the html pages. Now here comes the most amazing part: GitHub Pages has its internal support for jekyllrb so that I do not have to compile those pages locally. Rather, GitHub compile these pages online for me and replace the old version in the repository.
Now I have a fancy homepage with my favorite local editor and version control. I get the absolveness from maintaining web servers and databases. Good Enough? That’s not the end of the story. GitHub provides CDN services (not verified but you are welcomed to do so) as long as you bind your own domain as a CNAME/ALIAS to the github domain!