chalow を Python 実装 & サーバーサイド化 (その4) [chalow]

1ヶ月ほど手をつけられませんでしたが、ようやく ChangeLogReader.pm の Python 化が完了しました。
あとは、変換部分と出力部分です。

chalow を Python 実装 & サーバーサイド化 (その3) [chalow]

昨日に引き続き ChangeLogReader.pm の Python 化を行っています。

my $eh = shift @$linesp;


の @$ の部分はリファレンスの参照であることがわかりました。

$self->store_entry(\@entlines) if (@entlines > 0);


の \@ と対応しています。

{all} は予約後ではなく、ただ自分で定義しているだけの変数のようです。

chalow を Python 実装 & サーバーサイド化 (その2) [chalow]

chalow 1.0 に含まれる ChangeLogReader.pm の Python 化を行っています。

が、

my $eh = shift @$linesp;


の @$ の部分や

$self->{all}->{$ymd}->{eh} = $ymd;


の意味がわからず、コンバート作業があまり進みませんでした。

{all} って何?

chalow を Python 実装 & サーバーサイド化 (その1) [chalow]

日頃便利に使わせていただいている chalow というソフトがあります。
Changelog 形式のテキストから HTML を生成するソフトで、このブログ作成も chalow で作成されています。

ですが、使い始めた頃からテクノロジーは大きく進歩し、かつては、PC で行っていた作業を iPhone や iPad で行うことが増えました。

chalow でブログを更新するには、Changelog を更新し、chalow で HTML を生成し、ftp でアップロードする、と言う手順が必要です。

この手順が iPhone や iPad にマッチしておらず、少し不便になってきました。

まず、Changelog は 1ファイルにすべての記録をまとめるため、比較的大きなサイズのテキストファイルになっています。
Dropbox などでクラウド共有しても、iPhone や iPad で編集するには適したアプリが見つかっていません。
また、たとえ、Changelog を編集できたとしても、chalow 環境は PC にセットアップされているため、HTML の生成と ftp でのアップロードには、PC が必要になってきます。

そこで、chalow をサーバーにセットアップし、サーバーサイドで HTML 化することを検討しようと思います。
Amazon へのリンクの作成なども面倒くさいので自動化したいです。

まずは、今後のメンテナンス性を考え、perl で書かれている chalow を Python にコンバートしようかと思います。

コードベースは最新の chalow 1.0 に含まれる chalow です。

chalow ではテンプレートエンジンに HTML::Template が使われていますが、Python では Jinja2 を使います。
理由は、今後、Django をウェブサービス開発に使っていきたく、その練習として、テンプレートが Django と互換性のある Jinja2 は都合がよいからです。

上から順に手動コンバートしていき、本日は 30% ほど完了。
明日に続きます。

chalow の URL が移転 [chalow]

http://chalow.org/

chalow の URL が移転したそうです。

chalow の .conf を変更しました。

chalow に >>>/<<< ディレクティブを追加 [chalow]

chalow では >>/<< は <blockquote>/</blockquote> に変換されます。
が、<blockquote> では連続した半角スペースがまとめられてしまうため、レイアウトが崩れてしまいます。

連続した半角スペースをそのまま表示するため <pre> を追加するディレクティブを chalow に追加しました。

>>

s!^>>>\n!<blockquote><pre>!gm;
s!^<<<\n!</pre></blockquote>!gm;
<<<

ただ、これだと長文が改行されないので修正が必要。