Compnet

仕事とか遊びとか、日々折々

2016-10-04(火)

Blog システムを Pelican に移行する

Posted by Nakane, R. in misc   

これまでは、本ブログを WordPress で構築してきました。 WordPress というのはよく知られているように、PHP で記述された CMS のひとつで、コンテンツを MySQL のような RDBMS に保存して、表示の度にそこから読み出してテンプレートにはめて出力する仕組みです。

WordPress 自体は非常に多くの Web サイトで採用されてますし、とても使いやすいシステムです。 しかしながらこしばらく前から、愚ブログの程度の Web サイトで WorpPress を使うのは過大ではないかと思い始めました。

WordPress to Pelican

実際には思うだけでなかなか実行に移せていませんでしたが、ここに至ってようやく重い腰を上げて、静的サイト ジェネレーターを使った新たな Web サイトの構築を始めることにしました。

そこで、今回からしばらくの間は、Web サイトを静的サイト ジェネレーターを使うように構築しなおすまでを書いていこうと思います。

静的サイト ジェネレーターというのは、コンテンツの元になる情報 (ブログの場合は記事の本文) にテンプレートを適用した表示用の HTML を先に作成する仕組みで、できあがった HTML を Web サイトにアップロードして公開します。 これに対して WordPress のような仕組みでは、表示の度にコンテンツの元情報とテンプレートを組みあわせて表示用の HTML を生成して出力します。

愚ブログで、実際に採用したのは Pelican という Python で書かれたシステムです。 なぜ Pelican を採用したかといえば、その理由は非常に単純で、

  • まずは、Python で書かれていて拡張しやすいること。(たぶん、しないけど)
  • 次に、reStructuredText で書けること。
  • 最後に、気に入ったデザインのテーマ (テンプレート) が提供されていたこと。
  • おまけとして、テンプレートが Jinja2 で記述されていて修正しやすいこと。(これは多少なりともやらざるを得ないと思う)

この三点、いや四点に尽きます。

ちなみ、本記事も reStructuredText で記述しています。 一例として、本記事の先頭の何行かを以下に挙げてみます。

:category: misc
:tags: pelican, wordpress, blog
:status: published

これまでは、本ブログを WordPress で構築してきました。
WordPress というのはよく知られているように、PHP で記述された CMS のひとつで、コンテンツを MySQL のような RDBMS に保存して、表示の度にそこから読み出してテンプレートにはめて出力する仕組みです。

WordPress 自体は非常に多くの Web サイトで採用されてますし、とても使いやすいシステムです。
しかしながらこしばらく前から、愚ブログの程度の Web サイトで WorpPress を使うのは過大ではないかと思い始めました。

.. image:: {filename}/images/2016-10-04/wp2pelican.png
    :align: center
    :alt: WordPress to Pelican
    :class: thumbnail-limit-size-eyecatch

実際には思うだけでなかなか実行に移せていませんでしたが、ここに至ってようやく重い腰を上げて、静的サイト ジェネレーターを使った新たな Web サイトの構築を始めることにしました。

そこで、今回からしばらくの間は、Web サイトを静的サイト ジェネレーターを使うように構築しなおすまでを書いていこうと思います。

.. PELICAN_END_SUMMARY

静的サイト ジェネレーターというのは、コンテンツの元になる情報 (ブログの場合は記事の本文) にテンプレートを適用した表示用の HTML を先に作成する仕組みで、できあがった HTML を Web サイトにアップロードして公開します。
これに対して WordPress のような仕組みでは、表示の度にコンテンツの元情報とテンプレートを組みあわせて表示用の HTML を生成して出力します。

また、github で公開されている Pelican のリポジトリ を見てもわかるように、活発な開発が継続していることも採用の要因に揚げられます。

他には Nikola が比較的お手軽に使えそうな感じで、少々気になっています。 github で公開されている Nikola のリポジトリ の様子からは、こちらも活発な開発がなされているようです。 こちらのテンプレートは、Jinja2Mako のどちらかで記述できるようです。

ところで、今までのブログに載せた記事をどうするかは、未だ決めていません。 当面はこのままにするとしても、後々は少しずつでも移行したいとは考えています。 過去の記事の中には、サイトの引っ越しのときに画像データが紛失したものもいくつかあります。 移行するとしても、こういった記事を含めて、一部の記事は破棄せざるを得ないでしょう。

Comments