21
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonistaのための静的Blogエンジン'Pelican'とAmazon S3でブログを公開する方法

Last updated at Posted at 2014-04-06

Amazon S3は言わずと知れた, 静的ファイルをWeb上にホスティングできるサービス。Pelicanは日本ではマイナーですがMarkdownかreStructuredText形式のファイルを作るといい感じにhtmlを生成してくれるPython製のツール。"Pelican"という名前は, フランス語でノートを指す"calepin"から来ているらしいです。

Pelican
http://docs.getpelican.com/en/

Pythonが流行ってない日本だとかなりマイナーなんですが, 使ってみた感じとてもシンプルで使い勝手も良いのでみんな使って欲しい!まだテーマ少ないので誰か作って欲しい!(他力本願)

今回はAmazon S3上にホストする例を挙げていますが, HerokuGithub Pagesにも簡単にアップロードできるようになってるし, タグやプログラミングコードのハイライト, RSSなど機能的にも最低限のものは揃っているように感じます。

事前準備


  • Amazon S3のサービス登録と設定(アクセスキーとシークレットキー)
  • 独自ドメインの取得(必要な場合)

は先に実施しておきます。
Amazon S3のドメインは長ったらしくて微妙なので独自ドメインは必要かと思います。
私は以下のブログ等を参考にさせていただいて設定を進めました。

AWS S3 のバケットに独自ドメインを割り当てて、静的ファイルをホスティング - ニッチなWordPress徒然日記

注意点

  1. サブドメインではなくルートドメインで運用する場合, Amazon Route 53でのドメイン登録が必須。

  2. Webページとして運用する場合S3のbucket nameとブログのドメインとが一致している必要あり。

Pelicanのインストール


私はPythonは2.7系を使用してます。pipを使うと楽ですね。

$ pip install pelican

Markdown形式で書きたい場合はこちらも。

$ pip install markdown

インストールできたらクイックスタートコマンドを実行。

$ pelican-quickstart

たくさん質問が出てくるので順番に答えていってください。

入力が終わるとPelicanプロジェクトのひな形が作成されます。

$ ls
content/
output/
Makefile
develop_server.sh
pelicanconf.py
publishconf.py

content/

MarkdownかreST形式のファイルを入れるフォルダ。ユーザがブログを編集する作業フォルダになります。

output/

最終的なhtmlの出力先。

Makefile

htmlを出力したりlocalhostでコンテンツを確認したり, いろんなコマンドを提供してくれます。

pelicanconf.py

Pelicanの設定ファイル。
Blogの設定を変えたいときはだいたいこいつを編集します。

publishconf.py

商用の設定。実際に公開するときに必要な情報を編集します。Google AnalyticsやDisqusによるコメント入力の設定なんかも。

記事を書いてみる


とりあえず上記の設定ファイルなんかはいじらず, content配下にMarkdown形式でファイルを作ってみましょう。"This is..."以降がMarkdown形式での本文, そこから上はPelicanにブログのタイトルや日付, タグなどを伝えるためのシンタックスです。"Slug"は記事のURLをタイトルの文字列のハイフン繋ぎで表したものです。Huffingtonpostの各記事のURLなんかを見るとイメージがつくと思います。

Title: My super title
Date: 2010-12-03 10:20
Tags: thats, awesome
Category: yeah
Slug: my-super-post
Author: Alexis Metaireau
Summary: Short version for index and feeds

This is the content of my super blog post.

上記のようなファイル page.md をcontent/ に作成します。
出来たら

$ make html

でhtml出力,

$ make serve

でローカルサーバが動くのでlocalhost:8000で確認してみましょう。
上で作ったmdファイルがhtmlとして閲覧できるのが確認できるはずです。簡単ですね!

S3にデプロイ


ここまで出来たらいよいよS3にデプロイです。s3cmdというツールをインストールして, configureで設定をします。

$ pip install s3cmd
$ s3cmd --configure

また質問が出てきますが, アクセスキーとシークレットキー以外は空白でENTERで構いません。

次に商用の個別設定をpublishconf.pyにしている方は

$ make publish

コマンドを発行。これは読み込む設定ファイルをpublishconf.pyに変えて make html しているだけです。

最後に

$ make s3_upload

これでファイルがS3にアップロードされてブログが閲覧できます。

私も勉強しながらなので, 情報はちょこちょこ追記してきたいです。
基本はドキュメントを見ながら勉強ですね。Pythonの宿命として, 情報はだいたい英語圏にあります…。

追記
良く変更しそうな設定について別記事にまとめました.
Python製静的ブログ生成ツール'Pelican'の各種設定

21
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?