ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Pythonのstatic site generatorで、Pelicanを使ってみた

スポンサードリンク

static site generatorとは?

えーと、、、うん。静的な言語みたいにコンパイルしたHTMLとCSSを上げるやつ。でいいかな。(違うような気がしてきた)

んで、これが必要になったので、ちょっと試してみました。

install

pipで入りました。

$ pip install Pelican Markdown

markdownで記事を書きたい人はMarkdownも入れてあげてください。

とりあえずこれでおk

記事を書く

~/contentってディレクトリの中にmdを追加してください。

$ cat content/keyboard-review.md 
Title: My First Review
Date: 2010-12-03 10:20
Category: Review

Following is a review of my favorite mechanical keyboard.

これが記事になるっぽいです。

ビルド

$ pelican content

すると~/output/の中にソースが吐き出されます。そこをブラウザとかでみてみてください。

サイトが出来上がっているはず。

themeを自分で用意する

で、目的はブログ書くことじゃなくて、ブログサイトをとあるテーマに変更すること。なので、themeを自分で用意する。

ちなみに、テンプレートテーマがいくつかあるらしい。今回は使わない。

テーマのディレクトリを用意します。

Creating themes — Pelican 3.6.3 documentation

mkdir -p themes/custom-theme

んで、次は~/pelicanconf.pyに設定する。

$ vim ~/pelicanconf.py
# Specify name of a built-in theme
THEME = "/Users/user/project/pelican-sandbox/themes/custom-theme"

これでおk。再ビルドしたら、うまくいくと思います。

scssを使うためプラグインをロードする

scssを使いたいと思った人。プラグインがあります。

プロジェクトディレクトリにgit cloneでpluginリポジトリを落とします。

$  git clone https://github.com/getpelican/pelican-plugins.git

Pythonに必要なモジュールもインストール

$ pip install webassets cssmin

んで、設定ファイル~/pelicanconf.pyに追記

PLUGIN_PATHS = ['pelican-plugins']
PLUGINS = ['assets']

これでよし

また、使い方はテンプレートにこう書けばよい

        {% assets filters="cssmin", output="css/style.min.css", "scss/reset.scss", "scss/style.scss" %}
            <link rel="stylesheet" href="./{{ ASSET_URL }}">
        {% endassets %}

assetsがテンプレートのタグで、filtersが追加で通すpluginとかで、outputが吐き出されるファイル名で、そのあとのreset.scssstyle.scssはビルドされるファイル群です。

また、outputで吐き出されたファイルは、ASSET_URLに入ります。

これでビルドして問題なければおkです。

とりあえず今日はここまで。

使ってみて

CSSがそんなに得意じゃないので、ベンダープレフィックスとか使いたいときにどうしよう?ってなる。いつもはこういうのはnodeのgulpを利用しているので。

となると、templateはgulpで作成して、記事書くのはpelicanにお願いしようかしら。

めんどくさい。

参考になったリンク

クイックスタート Quickstart — Pelican 3.6.3 documentation

テンプレートのフォーマット Creating themes — Pelican 3.6.3 documentation

記事書くときの参考

http://docs.getpelican.com/en/stable/content.html

設定ファイルの説明

Settings — Pelican 3.6.3 documentation

テンプレートのシンタックス

http://jinja.pocoo.org/docs/dev/templates/