GitHub Pagesホスティングサービス(ほぼ)完全活用ガイド
GitHub がオープンソースの場として魅力的な理由は、Git という優れた分散・協調型リビジョン管理システムのリポジトリー・ザーバーとして誰でも利用できるということはもちろん、README などのドキュメント生成機能やコメンティング機能、問題のトラッキング機能など、Git を補助し、オープンな分散・協調開発を支えるサブシステムが充実している点が挙げられるでしょう。無料でもかなりのことができるのに、ビジネスとしてもちゃんと成立している理由はこんなところにあるように思います。
ただ、同種サービスの Google Code や Bitbucket と決定的に異なり、GitHub の最大の魅力となっているのは、GitHub Pages
という1種のホスティング・サービスではないかと思います。成果物をただずらずらと味気ないページに並べるのではなく、趣向を凝らした紹介ページを自由に作り、プロジェクトの成果を世界にアピールする − GitHub Pages は、そんなことのできるサービスです。
2008年12月の GitHub Blog の記事 には、次のような GitHub Pages の紹介があります。
You can put anything here you like. Use it as a customizable home for your Git repos. Create a blog and spread your ideas. Whatever you want!
(GitHub Pages 上にはお好みで何でも置くことができます。Git リポジトリのホームページとしてカスタマイズしても良し、ブログを設置してあなたのアイディアを広げても良し。あなた次第です!)
ということで今回は、この GitHub ページの活用方法をまとめてみたいと思います。
目次
1.GitHub Pagesの概要
GitHub Pages では、Git のリポジトリ管理機能とホスティング・サーバー機能とが連携し、次の2つのサービスが提供されています。ちなみに冒頭で 「お好みで何でも置くことができます」 と紹介しましたが、静的ページのみのホスティングです。
ユーザーページのホスティング
GitHub でいうユーザーページとは、自分自身の活動を紹介するためのページです。
特別なリポジトリ
を作成し、index.html や必要なリソースを push しておけば、username.github.com
という URL でそのページを閲覧することができます。http://username.github.com/
まずは、ユーザーページ用のリモートリポジトリを作成 しましょう。
ユーザーページ用リモート Git リポジトリの設定
次は、ローカルの Git リポジトリの作成を促す画面です。
ユーザーページ用ローカル Git リポジトリの作成
「Next steps:」 を参考に、新しい index.html を含むローカル Git リポジトリを作ると良いでしょう (
は自分のユーザー名に差し替えてください)。username
mkdir username.github.com cd username.github.com git init echo "Hello" > index.html git add index.html git commit -m "first commit" git remote add origin git@github.com:username/username.github.com.git git push -u origin master
余談ですが、GitHub リモート・リポジトリへのプロトコル/パスは、1クリックでコピーすることができます。
GitHubリモート・リポジトリへのパスを1クリックでコピー
もし
にアクセスして、次のような画面になっても焦る必要はありません。一番下にあるように、初めて GitHub ページを作成したときには、反映されるまで10分程度かかるということなので、落ち着いて待ちましょう。http://username.github.com/
最初は10分ぐらい待ちましょう
各プロジェクト・ページのホスティング
個別のプロジェクトを紹介するためのページです。
各プロジェクトのリポジトリで (例えば myrepos
)、
という特別なブランチを作成し、必要なファイルを push しておけば、gh_pages
という URL でそのページにアクセスすることができます。http://username.github.com/myrepos/
まずはローカルの Git リポジトリ (
ブランチがあるはずですネ) に移動し、未 commit のファイルがないことを確認します (あれば push します)。そして以下を実行し、とりあえずの index.html を作成しましょう。master
cd /path/to/myrepos git symbolic-ref HEAD refs/heads/gh-pages rm .git/index git clean -fdx echo "My GitHub Page" > index.html git add . git commit -a -m "First pages commit" git push origin gh-pages
上記コマンドライン以外にも、「Admin → Options → Features」(プロジェクトページ右上の ボタンから入る) で、紹介ページを自動作成することもできます。
プロジェクト用GitHubページの自動作成
プロジェクトの情報を記入してページを作成
自動作成されたプロジェクト・ページ
自動作成したページは、次の git コマンドでローカルに持ってくることができるので、どんな項目を載せるべきなのかを知るためにも一度は作ってみるのが良いでしょう。
git fetch git pull git checkout gh-pages
参考情報1
2.かんたん、カッコいいGitHub Pagesの作り方
ここから先はもちろん自由にページを作ってもらえれば良いのですが、おすすめの方法3つと、ページを彩るリソースを紹介します。
HTML5 Boilerplate、Initializr を利用する
「カッコいい」という要求を「HTML5 + CSS3 + Web フォント + レスポンシブなページ + ソーシャル共有ボタン」という要件に置き換え、Initializr をベースに作ってみたのがこれです。
HTML5 Boilerplate や Initializr 活用のコツやソーシャルボタンの設置については、拙作の 参考情報2 をぜひ参照してください 。
参考情報2
- HTML5 Boilerplate, Initializrをこれから使う人が押さえるべき5つの原則 | ゆっくりと…
- 最近海外で流行りのTwitter,Facebook,Google+1,Analyticsをまとめる非同期スクリプトにはてなを加えてみた | ゆっくりと…
jekyll を利用する
jekyll(ジキル)は、テンプレートを使って静的な Web サイトを構築するための Ruby ベースのフレームワークです。プロジェクトページをいくつも作る場合に便利でしょう。通常はローカルに Ruby 環境を整え、RubyGems(Ruby のパッケージ管理システム)から jekyll をインストールするのですが、GitHub Pages 上でもこのフレームワークが機能しますので、必ずしもこのような環境を整える必要がありません。
まずはローカルの gh-pages
ブランチに次のようなファイルを準備します。
. ├─ _layouts │ └─ default.html ├─ css │ └─ style.css └─ index.md
default.html
はテンプレートで、最も簡単には次のように書きます。
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>{{ page.title }}</title> <link rel="stylesheet" href="css/style.css"> </head> <body> {{ content }} </body> </html>
{ ... }
で囲まれた部分は jekyll によって解釈されます。{ content }
に相当する部分を、例えば index.md
(マークダウン) に記述します。
--- layout: default title: プロジェクト・タイトル --- プロジェクト・タイトル =================== ここにプロジェクトの紹介を書きます。 ...
layout
には先のテンプレートを指定します。そして title
はテンプレート中の { page.title }
に置き換わるという仕組みです。実は、GitHub Pages の解説ページ自体 がこの仕組みで作られています。
また、ここでは .md
の例を載せましたが、.html
や .textile
でも OK ですし、demo.md
や documents.html
といったファイルを置いても自動的にテンプレートを適用し、マークアップしてくれます。マークダウンや、さらに複雑なテンプレートの作り方については、参考情報3 をご覧ください。
参考情報3
- 脱GitHub初心者を目指す人のREADMEマークダウン使いこなし術 | ゆっくりと…
- Big Sky :: Jekyllで始める簡単ブログ
- Jekyllによる静的 Webサイト構築入門
- GitHub Pagesで楽々ホスティング – Radium Software
- jekyllで作る簡単GitHub Pages | T.I.D.
Octopress を利用する
Octopress は、jekyll を使って静的なブログを簡単に構築できるようにしたフレームワークです。副題に A blogging framework for hackers.
とあるように、Gist や jsFiddle など、多彩なコードスニペットの埋め込みプラグインが提供され、また GitHub ととても親和性よく作られています。
Octopress を利用するには、Ruby(1.9 2 以上)環境を整える必要があります。Mac の人は rvm(Ruby Version Manager)で、Windows の人は RubyInstaller でインストールすることができます。個人的には Windows であれば Cygwin を使うのが良いと思いますが、現時点では Ruby のパッケージ が 1.8.7 と古いので、別途 ソースコードを入手、コンパイルが必要です。
さて、Octopress のインストール自体は 参考情報4 に譲り、ここではローカルに作成した Octopress リポジトリのおすすめ管理方法を紹介します。
Octopress で記事を書くときは、
というブランチで作業をするので、そのまま source
origin
(つまり GitHub) に git push
することもできるのですが、無料枠の GitHub では公開が原則なため、誰かにクローンされると、原稿 (Octopress の場合、マークダウン・ファイル) まで持っていかれることになり、ちょっとイヤ〜ンな感じです。そこで私は、無料でもリポジトリを非公開にできる Bitbucket にアカウントを作って原稿を管理しています。
こうすると、記事を投稿するときは rake deploy
で GitHub へ、原稿をバックアップするときは git push
で Bitbucket へ送ることができて、イヤ〜ンな感じがなくなります。皆さんも使い分けてみてはいかがでしょうか?
参考情報4
- Big Sky :: githubとjekyllとoctopressで作る簡単でモダンなブログ
- GithubとOctopressでモダンな技術系ブログを作ってみる – Glide Note – グライドノート
- Octopressのインストールから運用管理まで – T.I.D.
GitHub Pages を彩るためのリソース
GitHub Pages が通常のホスティング・サービスと違うのは、公開リポジトリはフォークできるということです。つまり再配布が可能な状態となるため、画像などのリソースを載せる場合は要注意です。そこでパブリックドメインか GitHub で使えるリソースを紹介します。
- シンプルで使いやすいGitHub風のボタンを簡単に実装できるスタイルシート | コリス
- GitHub リポジトリに登録された、CSS3 で装飾されたボタンを実装するためのスタイルシートとアイコン画像です。
- GitHub Ribbons – GitHub
- GitHub 公式のリボン画像。ものすごい長い URL の画像は透過 png 画像 (149px×149px) です。
- ダウンロードリンク用
ファスナー付書類
zip 画像、tar 画像- 大きさが 144px × 142px とかなりデカいです。
- GitHub 関連の素材
- GitHub 公認のロゴやオクトキャット、リボン、創業者の写真(?)などの素材です。
- GitHub Ribbon Using CSS Transforms § Unindented
- 画像を使わず CSS3 で実装する GitHub リボンです。
- パブリックドメインやGPLライセンスの高品質なアイコンをパッケージで配布しているOpen Icon Library – かちびと. net
- 商用/非商用を問わず、無料で再配布可能なオープンソースなアイコンの他、一部はパブリックドメインのアイコンが公開されています。
- パブリックドメイン/CCライセンスのピクトグラムアイコン素材のみを配布するThe Noun Project – かちびと. net
- シンプルかつ高品質なアイコンが SVG フォーマットで公開されています。
- google-code-prettify
- コードスニペットを載せる機会の多い GitHub Pages で活躍する、軽量なシンタックス・ハイライト用 JavaScript です。オリジナルなカラーリングも容易にできますし、各言語用に拡張可能なプラグインもあります。Apache License, Version 2.0 ですので、再配布が可能です。
3.GitHub Pagesプロジェクト・ギャラリー
こだわりのある GitHub Pages を集めてみました。プロジェクトページ作りの参考にしてみてはいかがでしょうか。
4.あとがき
従来からある SourceForge.net や SourceForge.JP、Google Code に加え、GitHub の登場によってオープンソース化の流れがますます加速した感のある今日この頃。今までひっそりと自サイトで (オレオレ的に) 公開していた人たちが、ここ数年で一斉に GitHub に流れ込んで来たように思います。そして今後は、単なるコーディング能力だけではなく、人を惹き付ける魅力的なプロジェクト・ページをデザインする能力や、さらには自分の成果を世に問いその発展や貢献をプロモートする能力も必要な時代になるという気がしています。
この記事は、そんなオープンソースの意義と醍醐味を一人でも多くの方が楽しんでくれれば良いなぁ、という気持ちを込めてまとめました 。
オオ、
Publishing a Website on bitbucket
例えば、
tokkonopapa.bitbucket.org
というリポジトリで、ユーザーページhttp://tokkonopapa.bitbucket.org
は出来るのですネ。情報、ありがとうございました。
bitbucket にも、(githubより微妙だけれども) gh-page 相当のものはありますよ
@syui さん、
Admin の自動作成機能を使うだけなら要らないかもしれませんが、いずれにしても git でリモートホストとやり取りすることになるので、GitHub や Bitbucket では必ず SSH Key が要ります。
確か GitHub for Mac なら SSH Key がなくてもイケたと思いますヨ。
GitHub page の作成には、SSH Key の設定は、必須ではないんですかね?
http://help.github.com/mac-set-up-git/