Compnet

仕事とか遊びとか、日々折々

2016-10-08(土)

Web サイトのための作業ディレクトリを作る

Posted by Nakane, R. in technical   

本サイトの構築システム Pelican に切り替えるということで、先の記事 でそれをインストールするところまでを書きました。

Pelican のような静的サイト ジェネレーターは、コンテンツの基になる情報を普通にテキスト ファイルとして書き、それにテンプレートを適用して、Web サイトとして公開できるように変換する仕組みです。 この仕組みは Web サーバーと関係ないところで働きます。 つまり、公開する基になる Web サイトを生成するために、Pelican を実行する作業場所 (=ディレクトリ) が必要ということです。 Pelican では pelican-quickstart を実行して、この作業場所になるディレクトリを作成します。

pelican-quickstart を実行する

先の記事 の通り、Pelican は virtualenv で作った Python3 の環境にインストールしています。 このため、Pelican をインストールした Python3 の環境に入らなくては、Pelican のコマンドである pelican-quickstart が実行できません。 先の記事 で ~/pelican ディレクトリにその環境を作ったので、cd ~/pelican コマンドを実行してから source bin/activate コマンドを実行します。 これで Pelican のコマンドが使えます。

Pelican のコマンドが使えるようになったら pelican-quickstart コマンドを実行します。 すると、以下のような質問が順に表示されます。 以下で > から始まる行がそれです。 それぞれの質問に適切に回答すると Web サイトを生成する作業場所のディレクトリが作成されます。

$ pelican-quickstart
Welcome to pelican-quickstart v3.6.3.

This script will help you create a new Pelican-based website.

Please answer the following questions so this script can generate the files
needed by Pelican.


> Where do you want to create your new web site? [.]
> What will be the title of this web site?
> Who will be the author of this web site?
> What will be the default language of this web site? [en]
> Do you want to specify a URL prefix? e.g., http://example.com   (Y/n)
> What is your URL prefix? (see above example; no trailing slash)
> Do you want to enable article pagination? (Y/n)
> How many articles per page do you want? [10]
> What is your time zone? [Europe/Paris]
> Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n)
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n)
> Do you want to upload your website using FTP? (y/N)
> Do you want to upload your website using SSH? (y/N)
> Do you want to upload your website using Dropbox? (y/N)
> Do you want to upload your website using S3? (y/N)
> Do you want to upload your website using Rackspace Cloud Files? (y/N)
> Do you want to upload your website using GitHub Pages? (y/N)
Done. Your new project is available at ...

最初に表示される > Where do you want to create your new web site? [.] には、Web サイトに掲載する記事などのコンテンツを保存するディレクトリ名を回答・入力します。 ~/website ディレクトリに保存するなら、ここに ~/website と入力します。

次の > What will be the title of this web site? には Web サイトの表題を入力します。 日本語が入力できないと書かれた情報もありますが、古いバージョンの時はともかく、Pelican のバージョン 3.6.3 では問題無く入力できます。

> Who will be the author of this web site? には Web サイトの著者を入力します。 各コンテンツ (記事) 毎にも著者を指定できますが、省略されたときはここで入力した著者になります。

> What will be the default language of this web site? [en] には Web サイトの基本の言語を入力します。 ほとんどの場合は ja を入力するだろうと思います。 これも、各コンテンツ (記事) 毎に指定できます。

pelican-quickstart コマンドを実行するときに -p オプションまたは --path オプションで、コンテンツを保存するディレクトリ名が指定できます。 また、-t オプションで --title オプションでは表題が指定でき、-a オプションか --auther オプションでは著者が、-l オプションか --lang オプションでは言語が指定できます。 ただし、これらのオプションを指定しても該当する質問が表示されなくなったりはしませんが、回答の初期値が指定した値に変わるので、何も入力せず Enter キーを押すだけで次の質問に進めます。

pelican-quickstart からの質問の一覧

pelican-quickstart コマンドを実行したときの質問は、簡単な英文なので特に問題ないと思います。 これらの質問への回答はいくつかのファイルに保存されます。 すべてテキスト ファイルになっていて、後からでも自由に変更できます。 難しく考えず、後から直せばいいや。くらいの軽い気持ちで入力してもいいでしょう。

念のために、先の二行も含めてそれぞれの質問の和訳を以下に挙げておきます。

> Where do you want to create your new web site? [.]:
あなたの新しい Web サイトを作成したい場所はどこですか?
> What will be the title of this web site?:
この Web サイトの表題を何にしたいですか?
> Who will be the author of this web site?:
この Web サイトの著者は誰ですか?
> What will be the default language of this web site? [en]:
この Web サイトの既定の言語は何にしますか?
ここには二文字の国コードを入力します。通常、ここでは ja を入力します。
> Do you want to specify a URL prefix? e.g., http://example.com (Y/n):
URL プレフィックスを指定したいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> What is your URL prefix? (see above example; no trailing slash):
URL プレフィックスは何ですか? (例は上を見てください。末尾のスラッシュは不要です。)
> Do you want to enable article pagination? (Y/n):
記事をページネーション (ページ分割) したいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> How many articles per page do you want? [10]:
1 ページあたりの記事はいくつですか?
> What is your time zone? [Europe/Paris]:
タイムゾーンは何ですか?
タイムゾーンを '地域'/'地名' の形式で入力します。通常、ここでは Asia/Tokyo を入力します。
> Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n):
自動生成と公開のための Fabfile や Makefile を生成したいですか?
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n):
テーマやサイトの作成を補助する、自動再読み込みと簡単な HTTP スクリプトが欲しいですか?

これ以降の質問は二つ上の > Do you want to generate a Fabfile/Makefile to automate generation and publishing?Y を入力したときに表示されます。

> Do you want to upload your website using FTP? (y/N):
FTP を使って、あなたの Web サイトにアップロードしたいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> What is the hostname of your FTP server?:
あなたの FTP サーバーのホスト名は何ですか?
> What is your username on that server?:
そのサーバーでのあなたのユーザー名は何ですか?
> Where do you want to put your web site on that server?:
あなたの Web サイトはそのサーバーのどこにありますか?
> Do you want to upload your website using SSH? (y/N):
SSH を使って、あなたの Web サイトにアップロードしたいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> What is the hostname of your SSH server?:
あなたの SSH サーバーのホスト名は何ですか?
> What is the port of your SSH server?:
あなたの SSH サーバーのポートは何番ですか?
> What is your username on that server?:
そのサーバーでのあなたのユーザー名は何ですか?
> Where do you want to put your web site on that server?:
あなたの Web サイトはそのサーバーのどこにありますか?
> Do you want to upload your website using Dropbox? (y/N):
Dropbox を使ったあなたの Web サイトにアップロードしたいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> Where is your Dropbox directory?:
あなたの Dropbox のディレクトリはどこですか?
> Do you want to upload your website using S3? (y/N):
S3 を使ったあなたの Web サイトにアップロードしたいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> What is the name of your S3 bucket?:
あなたの S3 バケットの名前は何ですか?
> Do you want to upload your website using Rackspace Cloud Files? (y/N):
Rackspace Cloud Files を使ったあなたの Web サイトにアップロードしたいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> What is your Rackspace Cloud username?:
あなたの Rackspace Cloud のユーザー名は何ですか?
> What is your Rackspace Cloud API key?:
あなたの Rackspace Cloud の API キーは何ですか?
> What is the name of your Cloud Files container?:
あなたの Rackspace Cloud Files のコンテナーは何ですか?
> Do you want to upload your website using GitHub Pages? (y/N):
GitHub Pages を使ったあなたの Web サイトにアップロードしたいですか?
この質問に Y を入力すると、以下の質問が表示されます。
> Is this your personal page (username.github.io)?:
あなたの個人ページ (username.github.io) ですか?

pelican-quickstart で作られるファイルとディレクトリ

pelican-quickstart コマンドを実行すると、Web サイトを生成する作業場所になるディレクトリの中に、必要なファイルとディレクトリが作成されます。 作業場所のディレクトリが無いときは、それも一緒に作成されます。

例えば、Web サイトを作成する作業ディレクトリを ~/website とすると、以下のようなファイルとディレクトリが作成されます。

~/
└─ website/
    ├─ content/
    ├─ output/
    ├─ develop_server.sh
    ├─ fabfile.py
    ├─ Makefile
    ├─ pelicanconf.py
    └─ publishconf.py

ここで作成された content ディレクトリに、記事などのコンテンツを reStructuredText 形式や Markdown 形式で書いて保存します。 その後に、cd ~/website コマンドなどで ~/website ディレクトリをカレント ディレクトリにして pelican content コマンドを実行すると、output ディレクトリに HTML ファイルなど Web サイトを構成するファイルが出力されます。

output ディレクトリに出力された HTML などを見ながら、コンテンツなどを修正して完成したら、今度は pelican content -s publisconf.py コマンドを実行すれば、HTML ファイルなどを公開用としてoutput ディレクトリに出力します。 後は、output ディレクトリの HTML ファイルなど一式を、Web サーバーにアップロードして公開すればできあがりです。

なお、pelican-quickstart コマンドで回答したのうちの、表題、著者、言語、タイムゾーンとページネーションについては pelicanconf.py ファイルに保存され、URL プレフィックスが publishconf.py ファイルに保存されています。 また、Fabfile や Makefile の生成に Y を入力していると fabfile.py ファイルと Maikefile ファイルが作成され、自動再読み込みと簡単な HTTP スクリプトに Y を入力していると develop_server.sh ファイルが作成されます。 FTP や SSH のホスト名などは fabfile.py ファイルと Maikefile ファイルに保存されます。

先にも書いたように、これらはすべてテキスト ファイルです。 後からでも自由に変更できます。

Comments