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.scssやstyle.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
テンプレートのシンタックス