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]
chalow の URL が移転したそうです。
chalow の .conf を変更しました。
chalow に >>>/<<< ディレクティブを追加 [chalow]
chalow では >>/<< は <blockquote>/</blockquote> に変換されます。
が、<blockquote> では連続した半角スペースがまとめられてしまうため、レイアウトが崩れてしまいます。
連続した半角スペースをそのまま表示するため <pre> を追加するディレクティブを chalow に追加しました。
>>
s!^>>>\n!<blockquote><pre>!gm;
s!^<<<\n!</pre></blockquote>!gm;
<<<
ただ、これだと長文が改行されないので修正が必要。