pelican-logo

このHPをPelicanで作成したのでもろもろのメモ。

Pelicanとは

PelicanはPython製の静的サイトジェネレータです。

WordPresss等のCMSは動的に生成している。
(Movable Typeの初期は静的サイトジェネレータだったそうな。)

メリット・デメリット

メリットとしては

  • DB等のシステムが不要
  • 管理画面が無い為セキュリティ面も安心
  • 読み込み速度の高速化

が主な所かと思います。

デメリットとしては

  • 記事作成毎にHTML生成が必要
  • 管理画面無い

等でしょうか。

インストール

まず pelicanをインストールします。

> pip install pelican

Markdownで記事を書く場合は以下もインストール

> pip install Markdown

インストールしたら以下のコマンドでひな形を作成。

> pelican-quickstart

そうすれといろいろと質問される

# この Web サイトのタイトルは?
> What will be the title of this web site? hoge-website

# この Web サイトの作者は?
> Who will be the author of this web site? hogehoge

# この Web サイトのデフォルトの言語は?
> What will be the default language of this web site? [en] ja

# URL プレフィックスを指定する?
> Do you want to specify a URL prefix? e.g., http://example.com   (Y/n) Y

# URL プレフィックスは何にする?
> What is your URL prefix? (see above example; no trailing slash) http://pelicanblog.jp

# 記事のページネーションを有効にする?
> Do you want to enable article pagination? (Y/n) Y

# 1ページあたりの記事の数は?
> How many articles per page do you want? [10] 10

# Web サイトの管理を容易にするために Makefile を生成する?
> Do you want to generate a Makefile to easily manage your website? (Y/n) Y

# テーマと Web サイトの開発を楽にするため、オートリロードと simpleHTTP スクリプトを利用する?
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n) Y

# Web サイトのアップロードに FTP を利用する?
> Do you want to upload your website using FTP? (y/N) N

# Web サイトのアップロードに SSH を利用する?
> Do you want to upload your website using SSH? (y/N) N

# Web サイトのアップロードに Dropbox を利用する?
> Do you want to upload your website using Dropbox? (y/N) N

# Web サイトのアップロードに S3 を利用する?
> Do you want to upload your website using S3? (y/N) N

これで以下の様なひな形が生成される。

your-site/
├── content              # 記事フォルダ
│   └── (pages)
├── output               # 出力フォルダ
├── develop_server.sh
├── fabfile.py
├── Makefile
├── pelicanconf.py       # 設定ファイル
└── publishconf.py       # 公開時の設定ファイル

設定ファイル

# Basic Setting
AUTHOR = 'bulbulpaul'
SITENAME = "bulbulpaul's blog"
SITEURL = 'bulbulpaul.com/blog'
TIMEZONE = 'Asia/Tokyo'
DEFAULT_LANG = 'ja'

# 記事フォルダ
PATH = 'content'
# 画像フォルダ等の静的フォルダ
STATIC_PATHS = ['images']
# PATHからの記事のPATH
ARTICLE_PATHS = ['posts']
# 記事にURI
ARTICLE_URL = 'posts/{date:%Y}/{date:%m}/{slug}/'
# 出力先のPATH
ARTICLE_SAVE_AS = 'posts/{date:%Y}/{date:%m}/{slug}/index.html'
# 記事のサマリを表示する長さ
SUMMARY_MAX_LENGTH = 10

その他の細かな設定情報は公式ドキュメントを参照。

Pelican / Settings

Theme の変更

Pelicanはテーマ機能があり, 見た目を色々と変えることが出来ます。

設定方法はpelicanconf.pyに以下のようにテーマ名をしていするだけ。

THEME = 'hoge_theme_name'

とするだけです。

テーマは以下のURLで公開されています。

https://github.com/getpelican/pelican-themes

なお, Githubのテーマを使用する際はローカルに clone して
以下のようにテーマのディレクトリまでのPATHを指定します。
THEME = "/home/user/hoge/pelican-themes/theme-name"
テーマは jinja2 で書かれているのでカスタマイズも可能です。
自身で作成される場合は以下の公式ドキュメントを参考にすればいいかと思います。

Pelican / Creating themes

HTML 生成

> make html

.md や .rst ファイルからHTMLを作成します。

プレビュー

> make serve

デフォルトなら http://localhost:8000 で確認が出来ます。

上記の他にもFabric使ってデプロイとかも出来ます。

作ってみて

想像より簡単だったので,
Pelicanで静的サイト構築してみてもいいかと思いました。

Related Posts