ソースコードを管理する! GitHubとは? (プログラマの必須要件!?)

どうもキーです。
今回はGitHubについて説明していきます。

なお、本記事はGitHubをある程度知っている、利用したことがある人が読んでも、得られるものは(多分)ないです。

はじまりのまとめ

まずは先にまとめから載せます。
このまとめに行き着くように解説していきます。

  • GitHubとは、「GitHub社が提供している」「Gitバージョン管理システムを利用する」「Webサービスである」。
  • GitHubはGitを使った「ソースコードのバージョン管理をする」ために利用する。
  • 「ソースコードのバージョン管理をする」と、「問題が発生した時の切り戻し」や、「複数人でのソースコード編集によるバッティング回避」に利用できる。
  • GitHubは特に「オープンソースソフトウェアをGitの仕組みを利用して管理する」ということに対して強い。

GitHubとは

Wikipedia

以下、引用です。(引用と分かりづらかったので明記しときます。今後引用のスタイルも編集しようと思いました。)

GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービスであり、Gitバージョン管理システムを使用する。 Ruby on RailsおよびErlangで記述されており、GitHub社によって保守されている。

引用:GitHub – Wikipedia

さて、そもそもGitHubを知らない人にはこれを読んでもピンと来ない人も多いでしょう。
要点を説明すると以下のようなものです。

  • GitHub社が提供している
  • Gitバージョン管理システムを利用する
  • Webサービスである

前提としてGitHubとは上記のものとして認識しておいてください。
まだ、ピンとは来ないと思うのでまずは何のために利用するのか説明します。

何のために使うのか

Gitバージョン管理システムを利用するWebサービスということですが、結局何をするために使うのでしょうか。

基本的な答えは、「ソースコードのバージョン管理をする」です。

では、「ソースコードのバージョン管理をする」とはどういうことでしょうか。

例えば、WordPressのレイアウトを変更するためにstyle.cssを変更するとします。
そのときに、変更前のファイルと変更後のファイルの内容、また、その変更点が履歴としてあとからでも確認できるようにするということです。

何が良いのか

ファイルの変更の履歴が確認できるのが一体なんだというのでしょうか。
しかし、ある程度プログラムなどを経験するとその重要性に気がつくはずです。

例えば、cssファイルでも編集を誤ればWebサイトのレイアウトが大きく崩れてしまうと思います。
一般的なプログラムでもバグが発生してしまった場合は、バグの改修や発生バージョンの調査が必要になります。
そのようなときに、いつどのタイミングのプログラム変更により問題が発生したかなどを確認するために、変更の履歴が必要になるのです。

え?それなら自分で常に変更前と後のファイルを保持しておけばいい?
不可能ではないですが現実的ではないですね。それを楽にするためにシステムと言うものがあるのですから。
また、一部の方はフォルダに以下のようなファイルが入っているのを見たことがあるかもしれません。(例はstyle.cssの場合)

style.css
styel01.css
改修前_style.css
改修後_style.css
新_style.css
style.css.bak

あるあるですが、何がなんだかわからないですね。
しかも質が悪いのは、「この中のどれか一つが最新とは限らない」ということです。例えば、「改修後_style.css」と「新_style.css」には、「style.css」から変更した「全く別の内容」が入っている可能性があるのです。

これは特に、複数人で開発をしているときに起きやすくなります。
そうです。このような複数人による編集でのバッティングを防ぐために、チームで開発をするとなるとバージョン管理システムはほぼ必須のツールとなるのです。

何ができるのか

GitHubはソースコードのバージョン管理に使うと書きましたが、結局何ができるのでしょうか?

実はここまで述べてきた「バージョン管理をする」機能はGitHubのサービスではなくGitというシステムでできることなのです。(Git≠GitHub)

ではGitHubはそんなGitを利用して何を提供しているか。
数多くある機能のうち、特にGitHubのGitHubたる部分をお話すると、

  • Gitのソースコードの保管場所をオンラインに
  • 自身の作成したソースコードを世界中に公開
  • 公開されているソースコードに対して、世界中のだれもが改修を行える

ということです。
つまり、GitHubは「オープンソースソフトウェアをGitの仕組みを利用して管理するサービス」という面がとても強いです。(もちろん他の人にソースコードを公開しないようにもできますし、サービスの利用方法によっては法人用として使うこともできます。)

そして、数多くのオープンソースのプログラムがGitHubで管理されています。
オープンソースのプログラムを読むことはプログラマとしてステップアップをするための良い方法ですし、それどころか自分からライブラリを公開したり、既存のライブラリの改修に携わることができるのです。
まさに新しい世界への扉ですね☆

まとめ

というわけで、「GitHubとはなにか」について述べました。
以下は本記事のまとめです。(はじめに書いたもの)

  • GitHubとは、GitHub社が提供している」「Gitバージョン管理システムを利用する」「Webサービスである」
  • GitHubはGitを使った「ソースコードのバージョン管理をする」ために利用する。
  • 「ソースコードのバージョン管理をする」と、「問題が発生した時の切り戻し」や、「複数人でのソースコード編集によるバッティング回避」に利用できる。
  • GitHubは特に「オープンソースソフトウェアをGitの仕組みを利用して管理する」ということに対して強い。

GitHubはプログラマをやる上では避けては通れないサービスと思いますので、ぜひ登録しましょう。
と言いつつ私も最近まで(存在は知っていましたが)登録していなかったので、次回の記事では登録方法について書きたいと思っています!

かんそー:
まとめをはじめと終わりに書くのは冗長な気がしてかっこよくないですね。
結局必要なことしか書いてるつもりはないので目次をつけてはじめのまとめはなくそうと思っています。(長くても読んでもらうor飛んでもらう)
ただ目次を実装するにはもう少し時間がかかりそうですね。。。そのうちやります。
ちなみにGitHub、もうすぐ日本語対応のWebサイトが公開されるようですね。
(GitHub、日本語Webサイトを3月公開予定 | NEWS | Macお宝鑑定団 blog(羅針盤))
ただ正直プログラマをやる上で日本のみの知識でやるのはとてもキツいので、英語版の利用をしたほうがいいと考えています。私はそうしてみます。

Webサイトにソースコードを載せる方法3 プラグイン(Crayon Syntax Highlighter)を使おう

どうも、キーです。
前回はgoogle-code-prettifyというJavaScriptを使いましたが、今回はCrayon Syntax Highlighter(くれよん しんたっくす はいらいたー)というプラグインを使ってソースコードを表示したいと思います。

なお、本サイトではCrayon Syntax Highlighterのプラグインは利用していないので、説明は画像が中心です。

公式

Crayon Syntax Highlighter — WordPress プラグイン

サンプル

こんな感じになります。

他と比較したときのメリット

  • 導入、使用が簡単
  • 多機能
  • 対応しているプログラミング言語の種類が多い(らしい)

他と比較したときのデメリット

  • プラグインなので積み重なるとサイトが重くなる
  • プラグインの範疇を超えるカスタマイズはできない(プラグインでできることが多いのでデメリットに挙げなくても良いレベル)

使い方

画像でざっくり説明します。

インストール

プラグインを検索してインストールします。


インストールが終わったらプラグインを有効化してください。

ソースコードを挿入

記事投稿ページのテキストモードに追加された「crayon」ボタンを使います。

ソースコードを入力したらAddボタンで確定。
※ツールバーを常に表示しときたい方は次を先に読んでから確定してください。

ツールバーを常に表示する場合などはここを設定しておけば良い。

エディタ上にでる。

ソースコードの修正、設定の変更

ビジュアルエディタの「<>」ボタンから編集画面にいけます。
ただ、前のツールバーの設定なども初期値が入っているので、もう一回すべて編集してから確定する必要があります。

結果

サンプルと同じです。
上の画像取るときは忘れてましたがタイトルにテストと入れています。

感想

導入がものすごく簡単なのはいいですね。
テーマの種類も多く、機能性はとても高いと感じました。

あと、ここに書いてある方法でうまく行かない場合もあると思います。
そんなときにはググりましょう。
ネットはソースを複数確認するのが大事です。

次回はGistを使ってみようと思っています。

参考

よく使われるプラグインなので他のブログさんもまとめていますね。
筆者が読みやすく学習の参考にさせていただいたサイトさんたちです。

Crayon Syntax Highlighterの設定と使い方:記事中にソースコードを表示 | affilabo.com
Crayon Syntax Highlighter – ソースコードを記事上で綺麗に表示できるWordPressプラグイン | ネタワン
Crayon Syntax Highlighterの使い方 | TechAcademyマガジン

 

Webサイトにソースコードを載せる方法2 google-code-prettifyで綺麗にソースコードを表示しよう

どうもキーです。
今回からブログなどにソースコードを載せるときに使える方法として、「pre要素 + code要素」からより実用的なものへ進んで説明したいと思います。

一般的に使わる方法はいくつかあると思いますが、本ブログではその中でも特にメジャーと思われる以下の3つを紹介予定です。

    • google-code-prettify (JavaScriptのライブラリ)
    • Crayon Syntax Highlighter (プラグイン)
    • Gist (GitHubのサービス)

これらは「シンタックスハイライト」という、プログラム中で特殊な意味を持つ単語に色をつける表示をすることができます。
今回は、本ブログでも利用している「google-code-prettify (JavaScriptのライブラリ)」を紹介します。

サンプル

今回は以下のようなイメージでソースコードを表示させます。

<pre class="prettyprint linenums"><code>
.wrap {
max-width: 1000px;
/* こんな感じ */
} 
</code></pre>

google-code-prettifyの種類

google-code-prettifyの使い方は2種類あります。

  1. CDN版
  2. ダウンロード版

CDN版はスクリプトのURLを読み込んで使用します。
ダウンロード版はスクリプトファイルをダウンロードして、Webサーバー上にアップロードして使用します。

ダウンロードファイルのほうがスクリプトファイルを編集できたり、外部のサーバーに依存せず使用できるため、Webサーバに自分でファイルをアップできないなど特別な事情がなければダウンロード版で良いでしょう。

以下ではダウンロード版の使い方を説明します。

準備

  1. ファイルのダウンロード
    現在はGitHub上にファイルが保管されているようです。
    (GitHub – google/code-prettify: Automatically exported from code.google.com/p/google-code-prettify)
    ソース一覧の右上の「Clone or download」から「Download ZIP」を選んでダウンロードしてください。
  2. Webサーバにアップするファイルを選びます。
    今回はまず使い方を覚えるために最小限必要なファイルだけをアップしようと思います。
    ダウンロードしたzipファイルを解答して「loader」フォルダの中から以下の2つを取り出してください。
    ・prettify.css
    ・prettify.js
    「loader」フォルダなどにある、「lang-xxx.js」のファイルはxxxに入るプログラミング言語の予約語を取り扱うためのものです。
    ただこちらは説明すると説明がかなり多くなるため今回は省きます。
  3. 自身のサイトデータを上げているフォルダに「code-prettify」というようなフォルダを作成し、上記の2ファイルをアップロードしてください。
    例えばWordPressなら「wp-content」フォルダがある場所と同じ場所に作る場合が多いと思います。
  4. 「header.php」でスクリプトを読み込みます。
    (時代的にはbodyタグの最後で読み込んだほうが良いのかもしれませんが、余計なトラブルは避けたいため一旦確実な方法で)
    例の如く「</head>」の前に記載します。

    <head>
    <!-- 中略 -->
    <link href="/code-prettify/prettify.css" type="text/css" rel="stylesheet"> <!-- デフォルトのスタイルシート読み込み -->
    <script type="text/javascript" src="/code-prettify/prettify.js"></script> <!-- スクリプトファイル読み込み -->
    </head>
  5. 「header.php」で上記で定義したスクリプトからソースコードの表示関数を実行します。
    「ソースコードの表示スタイルを変更する」という関数を定義しておくイメージです。
    珍しく「<body>」タグに記載します。「<body>」タグ自身を以下のようにしてください。

    <body onload="prettyPrint()" <!-- 他の処理がある場合はそのまま残しておく --> >

以上で準備は完了です。

使い方

前回(Webサイトにソースコードを載せる方法(1))紹介した、「pre要素 + code要素」を使う方法から、pre要素の記述に少し加えるだけです。
ソースコードを表示したい部分を以下のようにしましょう。

<pre class="prettyprint linenums"><code>
<!-- ここにソースコードを記載 -->
</code></pre>

これでgoogle-code-prettifyのスタイルでソースコードを表示できます。
class="prettyprint linenums"」は「prettyprint」スタイルで表示し、「行番号を表示する」という意味です。必ずpre要素に記載してください。code要素に記載すると違う動作をするようです。(使い方があるのかもしれませんが、私のところでは文字の色がうまく表示されませんでした。)

最後にブラウザのキャッシュを削除して動作を確認しましょう。

結果

ソースコードが綺麗に表示できる。
基本的な使い方はこれで十分ですが、準備手順の2番でも書いた通り、この状態では様々なプログラミング言語の予約後には対応していないです。
その他にも便利なカスタマイズなどもあるため、自身が慣れたら記事を書こうかと考えています。

キーのひとこと:
WordPressって奥が深いですね。
今までWeb系の技術に触れてこなかったので、JavaScriptやcss、レイアウトに関する知識などを一から学ぶ良い機会になっています。
Web系の技術は時代にもあっているので時代に追いつけるように勉強していきたいですね。

 

WordPressの子テーマは必ず利用しよう(2)

子テーマの簡単な使用方法

どうも、キーです。
前回(WordPressの子テーマは必ず利用しよう)は、WordPressにおける「子テーマ」の作り方を説明しました。

今回は、「子テーマ」の簡単な使用方法を説明したいと思います。

子テーマのファイル

「子テーマ」を利用するためには前提知識が必要です。
といっても前回説明した「親テーマ」の更新の影響を受けなくする。を達成するだけであれば以下の点を覚えていれば十分です。

  • 「親テーマ」「子テーマ」に同じファイル名のファイルがあった場合、「子テーマ」のファイルが使用される。
  • 「cssファイル」と「functions.php」は例外。特に「cssファイル」は「親テーマ」→「子テーマ」の順に読み込まれる。

※「functions.php」については読み込まれ方が複雑であるのと、今回その知識は必要ないので割愛。必要なときに書きます。

例1: header.php

親テーマには通常「header.php」というファイルがあると思います。
こちらの記事(Google Analyticsを導入しよう(WordPressブログのアクセス解析について))でも編集しました。

この編集を子テーマで行うようにし、親テーマの更新の影響を受けないようにしたいと思います。
といっても手順は簡単。

  1. 「親テーマ」の「header.php」を、FTPソフトなどでダウンロードするか内容をコピーしてテキストエディタに貼り付ける。
    ※文字コードはUTF-8にする。改行コードは自分が利用しているOSのものでOK(WindowsならCR+LF、現代のmacOS、LinuxならLF)。
  2. Google Analyticsを導入しよう(WordPressブログのアクセス解析について)の記事のとおり、コピーした「header.php」を編集する。
  3. ファイルを「header.php」の名前で保存する。
  4. FTPソフトなどを利用し、子テーマのパスに作成した「header.php」をアップする。

以上です。やっていることはコピーを作って編集するだけですね。

例2: style.css

次は子テーマのスタイルシートについてです。
スタイルシート(cssファイル)については前述しましたが、「親テーマ」→「子テーマ」の順に読み込まれます。
そしてスタイルシートの特徴として、同じ項目に対する記述は、後に書いたもので上書きされます。
つまり、上書きしたい項目文のみ記載すれば良いわけです。

スタイルシートの編集内容についてはこちら(WordPressブログのレイアウトを最低限整える方法まとめです。(Twenty Seventeen))を例とさせてもらいます。

上記記事で「style.css」の編集についてごちゃごちゃと書いておりますが、子テーマを用いて同じようにする場合は以下を前回(WordPressの子テーマは必ず利用しよう)作成した子テーマの「style.css」へ追記してください。

@media screen and (min-width: 48em) {

	/* Layout */

	.wrap {
		max-width: 1100px;
	}

	.has-sidebar:not(.error404) #primary {
		width: 	68%;
	}

	.has-sidebar #secondary {
		width: 26%;
	}
}

これだけでOKです。
ページ全体の表示の幅、記事の幅、サイドバーの幅を親テーマの設定から上書きしています。
@media screen and (min-width: 48em)などはページ内の要素を特定するための記述だったりしますが、気になる方はcssの書き方を調べてください。機会があれば記事にするかもですが。

結果

子テーマを使って以下の2つの記事の内容と同じ編集ができる。

※子テーマを更新してもレイアウトなどが反映されない場合はまず以下の「レイアウトが反映されない場合」をチェックしてください。それでもわからなければこの記事ではどうしようもないですが。

レイアウトが反映されない場合

真っ先に思い当たる可能性は以下の2つです。
これらを試して違った場合は他のブログも含めもっと広い範囲で調査したほうが良いかもしれません。

  1. 記述が間違っていないか確認する。
    当然ですが、これまでの記述のどこかで誤りがあればレイアウトが反映されないということもありえます。また、テーマが違う場合はすべてがそのまま使えるとは限らないです。テーマ名で検索しましょう。
  2. ブラウザのキャッシュをクリアする。
    レイアウトを確認しているブラウザのキャッシュをクリアしましょう。
    キャッシュ関連のプラグインを利用していなくてもまず試しましょう。
    私はプラグインないから大丈夫なはずとスルーしていたら見事にハマりました。

今後の構想

勘の良い方やもともと知識のある方は気づいているかもしれませんが、この方法にも問題点があります(かなり簡単にできるのはとても良い点ですが)。
問題に対応するには少し勉強が必要そうですので今しばらくはこの方法で行きたいと思います。筆者が問題に対応できるようになったら記事にしたいと思います。