*追記有り。

今Markdownで紙用の原稿書いているんだけど・・・

Markdownって楽だけど、実際にフォーマッティングがどんな感じになるかを見るには1回パースして処理する必要があるじゃないですか。いちいちMarkdown.pl呼び出すのも面倒くさいからPlackでディレクトリ直下のファイルをパースしてはき出すようにした。

Plackはなにげにこういう使い方が異常に便利な気がする。まさにSwiss Army Knifeって感じ。
use strict;
use File::Spec;
use Text::MultiMarkdown 'markdown';

sub {
    my $env = shift;

    my $file = File::Spec->catfile(
         File::Spec->curdir, $env->{PATH_INFO});
    open my $fh, '<', $file or die "Failed to open $file: $!";

    [ 
        200, 
        [ "Content-Type" => 'text/html; charset=utf-8' ],
        [
            <<EOM,
<html>
<head>
    <style type="text/css">
    <!--
        body {
            font-family: Halvetica, sans-serif;
            padding-left: 2em;
        }
        pre { padding-left: 2em }
    -->
    </style>
</head>
<body>
EOM
            markdown(do { local $/; <$fh> }), 
            <<EOM,
</body>
</html>
EOM
        ]   
    ]   
};

*追記

全く持ってめんどくせぇけど、PHPのほうがいいじゃないか、ってのはすげぇ違うので一応書いておく。


まず誤解を生まないように書くと、CGI環境で動くようなのもText::MultiMarkdownさえ動く環境ならどこでもすぐできますし、Plackがあろうとなかろうとら昔からこれくらいできますね。

でもCGIだとこれをサーバーにアップロードしないといけないじゃない。俺はローカルディスクに入ってるファイルをちょこちょこ見ながら編集したいだけなんだよね。だから書いたの。というわけでPHPだから云々は話が違う。「RoRだったら・・・」だったら分かるけど。


ついでなのでPlack版も組み替えましたよ。別に汚くてもリリースするわけじゃないし、いずれにせよ5分で実用的なものがかけたからいいと思うけどね。ちなみにpsgiじゃなくてもPlack::App::WrapCGI使えばさっきのCGIファイル使えるよ!(自分もそれでテストしたのに忘れてた)

カテゴリ

トラックバック(0)

このブログ記事に対するトラックバックURL: http://mt.endeworks.jp/cgi-bin/mt-tb.cgi/2474

コメントする

筆者

daisuke - a.k.a. "lestrrat", Perl hacker at Livedoor Inc, Japan Perl Association 代表理事

このブログ記事について

このページは、Dが2010年3月29日 17:23に書いたブログ記事です。

ひとつ前のブログ記事は「ハッピーDFK-Day!」です。

次のブログ記事は「最近読んだ漫画」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1