自作CMSへの道(1): まず欲しい機能をまとめてみた

現在、このサイトはPythonベースのBottleというマイクロフレームワーク上に構築した自作CMSで動作している。サーバの構築手順やプログラミングなどの手順についてはこれまでに書いてきた通りなんだけど、CMSそのものの設計手順なども忘れないうちに書いておこうと思った次第。

自作CMSに移行する前は、PloneというPythonベースのCMSにCOREBlog2というブログエンジンを組み合わせて使っていた。Ploneについては細かい不満はいくつかあったのだが概ね満足していた。ただ、COREBlog2は開発を終了し、Ploneのバージョンアップに追従できなくなってしまった(FreeBSDのportsからも削除された)。

で、なんとかしなきゃいけないと思い始めたのが2012年1月のこと

Plone+COREBlog2のいいところは以下の通り。

1

Python標準の構造化テキストで、改行、字下げなどで装飾することによって、可読性が高く且つ(段落、見出し、引用などの)構造が示されたテキストを提供する。HTML(+CSS)やPDF等に容易に変換可能である。

一方、イマイチだと思ったのは以下の点。

と、いうことで以下のようなウェブサイトにしたい、と考えていた。

新しいCMSとしてまず思い浮かんだのは当時Pythonで最も人気のあったフルスタックフレームワークのDjangoベースにすること。同じPythonベースならreStructureTextをサポートしているだろうと思ったから。でも、Djangoベースのブログエンジンはあまり活発に活動していなかったみたいで、機能もイマイチ自分の希望と合わなかった。

じゃあPythonから離れてPHPベースのブログエンジンのWordpressはどうか、ということで検討はしてみた。reStructuredTextを扱うことについてはある程度の目処がついたのだが、ブログと非ブログコンテンツを一元管理する方法については(できることはわかっていたが)どうやってやるのか見当もつかずハマってしまっていた。

そんな時に、桜井通開氏のブログのBottle紹介記事を思い出し、これなら自分にもできるかもしれないと思って着手したのが2014年のことだった。思えば自宅サーバでWebサイトを公開する際にZopeフレームワーク(PloneはZope上に構築されたCMS)を選択したのは桜井氏の記事[archive]を読んだことがきっかけだったし、つくづく桜井氏に縁がある。

このサイトは所詮仕事の片手間にやってる趣味サイトに過ぎず、コンテンツの保守管理に必要以上の手間をかけるわけにはいかない。なんでコンテンツのポータビリティはすごく大事。コンテンツを構成するデータ(reSTなコンテンツそのものやタイトル、日時情報、コメントなど)がどんなもので、どのような形でDBに保管されているのかは、自分が把握できる程度にシンプルであって欲しい。でないとCMSを別なものにしたくなった時にデータの移行に手間がかかる(事実かかった)。そういう意味ではマイクロフレームワークベースにして良かったんじゃないかと思っている、今のところは。

コメント(0)

コメントを投稿する際はここをクリック


Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。