序章


Jekyll は、Markdownファイルのディレクトリから静的HTMLサイトを生成するツールです。 結果として得られるWebサイトは高速でポータブルであり、nginxなどのサーバーがキャッシュに頼ることなく多くのユーザーに同時にサービスを提供するのが簡単であるため、これは有利です。

Jekyllを使用する最も一般的な方法は、サイトのファイルを Git リポジトリに保持し、ローカルで編集し、git pushを使用してサイトをVPSにデプロイすることです。

ローカルインストール


まだインストールしていない場合は、Ruby、Jekyll、Gitをローカルマシンにインストールする必要があります。

Rubyの場合、次の1つのコマンドを使用して、RVMを備えたRuby2.0の最新リリースをインストールできます。

curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0

それが完了したら(数分かかります)、ログアウトしてから再度ログインします。 Jekyllのインストールは、jekyllの宝石を手に入れるだけの簡単なことです。

gem install jekyll

ここでGitが必要です。これは、公式Webサイトからダウンロードするか、パッケージマネージャーを使用してインストールできます。 (Macユーザーは Homebrew を使用できますが、Linuxのユーザーはおそらく自分が何をしているかをすでに知っています…)

ブログの作成


Jekyll Webサイトには、ツールの使用に関するクイックスタートガイドと完全なドキュメントがあります。 ここでは絶対的な基本について説明しますが、日常の使用法とカスタマイズについては、ガイドを参照してください。

ローカルマシン上のブログファイルを保存する場所に移動し、次のように新しいブログを作成します。

jekyll new awesomeblog

これにより、構成ファイル、postsディレクトリ、およびその他の必要なビットを含むawesomeblogディレクトリが作成されます。 これで、そのディレクトリに移動し、サーバープロセスを起動して、ブラウザでプレビューできます。

cd awesomeblog
jekyll serve

Jekyllがブログを作成し、数秒後にブラウザでhttp://localhost:4000にアクセスできるようになります。

次に、同じディレクトリにあるGitリポジトリを初期化して、行った変更を追跡できるようにします。

git init
git add .
git commit -m "Initial commit"

VPSを準備する


簡潔にするために、nginxやApacheなどのWebサーバーを実行しているVPSがすでにあると仮定します。 (また、パブリックHTMLフォルダーは/var/wwwであると想定しますが、ディストリビューションと構成によって異なる場合があります。)まだこれを行っていない場合は、で利用可能な多くのチュートリアルを参照してください。 nginx

まず、VPSにGitをインストールします。 UbuntuまたはDebianの場合、次のコマンドを使用してgit-coreパッケージをインストールします。

apt-get install git-core

別のディストリビューションを使用している場合、これは異なる場合があります。 たとえば、Fedoraは代わりにyum install git-coreを使用します。

RubyとJekyllもインストールする必要があります。 以前と同じ:

curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0
gem install jekyll

次に、ホームディレクトリに移動し、展開先の新しい「ベアリポジトリ」を作成します。

cd ~/
mkdir repos && cd repos
mkdir awesomeblog.git && cd awesomeblog.git
git init --bare

その後、受信後フックを設定する必要があります。 これは、ファイルがリポジトリにプッシュされたときにGitが実行するシェルスクリプトです。 次のように作成します。

cd hooks
touch post-receive
nano post-receive

次に、次のスクリプトを貼り付け、それに応じて変数を調整します。 GIT_REPOは、前の手順で作成したベアリポジトリへのパスです。TMP_GIT_CLONEは、スクリプトがファイルをチェックアウトし、ブログをビルドしてから/var/wwwにコピーする場所です。 ]。 PUBLIC_WWWは、最終的なサイトが存在するパスです。 この例(Webルートが/var/wwwであると仮定)では、サイトはhttp://example.org/awesomeblogに表示されますが、PUBLIC_WWW/var/www

#!/bin/bash -l
GIT_REPO=$HOME/repos/awesomeblog.git
TMP_GIT_CLONE=$HOME/tmp/git/awesomeblog
PUBLIC_WWW=/var/www/awesomeblog

git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build --source $TMP_GIT_CLONE --destination $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

control + Oを押し、Enterキーを押して、ファイルを保存します。 次に、ファイルに実行可能権限を付与します。

chmod +x post-receive

Gitリモートを追加する


ローカルマシンに戻り、ブログのGitリポジトリにリモートを追加します。

git remote add droplet [email protected]:repos/awesomeblog.git

これで、次のコマンドを使用して最新のコミットをサーバーにプッシュできるようになります。

git push droplet master

Jekyllで新しいブログ投稿を行うときはいつでも、変更をGitリポジトリにコミットし、VPSにプッシュします。 クラウドサーバーがサイトを構築し、変更が数秒以内に公開されます。

投稿者: https ://twitter.com/redwall_hp