Posted on 2018-10-08 in zakki

Publish your site

Site generation

html に変換するには pelican コマンドを使う。content ディレクトリとオプションとして自分のセッティングファイルsetting.pyを使用する。

pelican /path/to/content/ [-s path/to/setting.py]

上のコマンドはサイトを生成してoutput フォルダに格納される。デフォルトのテーマファイルが使用され簡単なサイトが生まれる。このデフォルトのテーマは凝ったデザインがないとても簡易なHTMLで構成されており、使用者が自身のオリジナルテーマを作る基礎として使われるためにある。

単一の記事またはページを作るとき、その記事またはページを構成するファイルのみでページを生成することが可能である。これを行うためには、--write-selected 定義を行う。

pelican --write-selected output/posts/my-post.html

ソースコンテンツではなく、生成されたアウトプットファイルを指定することに気をつける。アウトプットファイルのファイルパスを調べるには、--debugオプションを使用してファイルの名前やパスの場所を調査することが必要です。もし望むなら--write-selected オプションでコンマ区切りのパスリストを取るか、設定として構成できます。

変更のたびに毎回手動で再実行するのではなく、更新を確認するためにペリカンに指示することもできる。その場合はpelicanコマンドといっしょに-rオプション(または--autoreloadオプション)を使う。

pelicanはほかのコマンドラインスイッチも存在しているので、使う場合はヘルプを見る。

pelican --help

Viewing the generated files

Pelican によって生成された静的ファイルは特別なことを必要とせず閲覧することが出来ます。ブラウザを使って生成された HTML ファイルを直接開けます。

上の方法でCSSやほかのリンクアセットで異常があった場合は、python の簡易なウェブサーバを動作させることで、より信頼性のあるプレビューができる。

python3 では、

cd output

python -m http.server

とする。

基本的なサーバを一度開始すると、http://localhost:8000 で自身のサイトが閲覧できる。

Deployment

サイトを生成後(自身の開発環境で試して、そしてそれをデプロイする準備ができたあと)、本番環境固定の設定(たとえばアナリティクスコードなど)で再生成することができます。

pelican content -s pubulishconf.py

pelicanconf.py を本番環境の基礎とした場合は、下記のようにpublishconf.py に行を付け加え pelicanconf の設定をインポートする。

from pelicanconf import *

もしpelican-quickstart コマンドを使用してpublishconf.py をすでに作成してた場合は、標準で行が付け加えている。

本番環境への適用はホストの環境によります。もし、Nginx や Apache が動作しているサーバへ SSH 通信 が出来るのであれば、rsync で本番環境へファイルを移動する用途に使用できるだろう。

Automation

pelican コマンドはサイトを生成する標準的な方法だが、自動化ツールを使用して生成や本番への公開フローを合理化することができる。pelican-quickstart のプロセス中に尋ねられる質問の一つは、サイト生成と本番公開を自動化するかどうかに関係する。もし Yes と回答したならば、fabfile.pyMakefile がプロジェクトのトップディレクトリに生成される。このファイルは pelican-quickstart プロセス中の他の質問回答から情報を収集する方法ですが、スターティングポイントを意味し、特定の用途や使用パターンに合致するようカスタマイズできる。もしこれらのツールの使用が限定的であることがわかった場合、このファイルはすぐに削除することができ標準的な pelican コマンドの使用方法に影響は及ぼさない。

Fabric

https://www.fabfile.org/

  • Invoke(ローカル環境でのコマンドライン実行をサポートするパッケージ)
  • Pramiko (SSH通信をサポートするパッケージ)

の上に構築して、API拡張、補完し追加機能を提供。

Make