メイン

Sukeroku アーカイブ

2005年06月23日

mt-sukeroku2 β1公開

引き続きmt-sukeroku2のβ1(差し替え版)をリリースします。

とりあえず次の環境でテストしてます。

  • FreeBSD 4.5 + Perl5.005_03 + MT 2.661
  • ? + Perl 5.8.0 + MT 3.17ja (ロリポップ) †1
  • Mac OS X 10.3.9 + Perl 5.8.1 + MT.3.15ja

インストール関係の情報はこちらをご覧下さい。

ダウンロード

Download : mt-sukeroku2_200506232359.zip
(Pukiwikiフォーマットでレンダリングに問題が発生していましたので、当初のβ1を差し替えています)

連絡方法

  • メール
    • donadona あっと gmail どっと com
  • mixi(場合によっては捕まえやすいです、苦笑)
    • http://mixi.jp/show_friend.pl?id=102587

ご協力よろしくお願いします。

  • †1: XML::Simpleを追加インストールしています

2005年06月24日

Text::Sukerokuについて

mt-sukeroku2の大幅な変化の一つとして、テキストフォーマッタとしての機能をText::Sukeroku::*というPerl Module化し、MovableTypeへの依存を切り離したことが挙げられます。

その分弊害として、インストールがやりにくくなったりとかそういう問題はあるんですが。

これにより、「なんちゃってはてなダイアリー記法」をどのPerlスクリプトでも使えるようになりました。

ま、こちらがジタバタ足掻いている間にnaoyaさんがCPANへの登録の検討を考えられたりしているので風前の灯という気がしまくりですが†1

ともあれ、これを使って頂ければPerl系のblogツールにYukiwiki風/Pukiwiki風/HatenaDiary風の表記をHTMLにレンダリングできるようになるというわけです。

活用する用途がどれぐらいあるのか分かりませんが(^^;

簡単な使い方

use Text::Sukeroku::Agemaki;

my @lines  = <STDIN>;
my $hatena = Text::Sukeroku::Agemaki->create('hatena', join("", @lines));
print ($hatena->formatText());

これで簡単なパイプツールが出来ちゃいます。

もすこし説明。

Text::Sukeroku::Agemakiというファクトリみたいなクラスがあるので、そいつからフォーマッタとなるクラスのインスタンスを起こします。

my $hatena = Text::Sukeroku::Agemaki->create('hatena', join("", @lines));

一つ目の引数が書式の指定で、yukiwiki, pukiwiki, hatenaのいずれかを選択することになります。(今後増えるかもしれんけど)

二つ目の引数がソースとなるテキストの指定。

先ほどの例では標準入力の内容をそのまま吐き出すということをしていますが、普通に変数$textみたいなので渡しても問題ありません(現状、リファレンス渡しには対応してないです)。

print ($hatena->formatText());

フォーマッタのメソッドformatText()によりHTMLレンダリングされた文字列が返って来ます。

アーカイブに収録されている/plugins/mt-sukeroku2.plをご覧頂いても、上記の内容から飛び出たことはほとんどやっていないことが分かるかと。

中身については前述の通り改善点が多数あるので詳細はまたの機会にしたいと思います。†2

  • †1: さらにこっちのはOOPできてないクラス設計だったりするし…。
  • †2: この表側のインタフェイスについては変更するつもりは基本的にございません。

2005年06月25日

mt-sukeroku2 おまけ機能

拙作AAA(Amazon Associate Assistant)などで実現していたJavaScriptによる非同期のAmazon.co.jpへの詳細情報リンクを生成するCGIをおまけとしてβ2より添付します。

なお、レンダリング結果自体はASIN:xxxx:detail記法の結果と同じです・・・というか、同じ処理を流用しています。

[asin:4097275119:async]

と記述すると、このように展開されます。

実際の中身はこのようになっています。

<script src="/blog/asin_js.cgi?asin=4097275119">
</script>

あくまでも処理発生の非同期化をしているため、アクセス数が多いとその都度Amazon Web Servicesをつかうことになり、サーバ負荷増大に繋がります。

File::FileCacheモジュールが使用可能なサーバではAmazonへの問い合わせを一定時間プールできるのでその辺も活用していただきたいと思います†1

尚、非同期なので、発売前→発売後→品切れ→再入荷などのタイミングで表示内容が随時(ほぼ)リアルタイムに変わります。これが一番便利なところかもしれませんね。

async記法の出力内容自体は(現在)Text::Sukeroku::Kiseruに指定する形になります。

sub amazon_async_tmpl{
  return << "END_OF_TMPL";
<script src="/blog/asin_js.cgi?asin=<TMPL_VAR NAME="Asin">">
</script>
END_OF_TMPL
}

拙作のCGIよりももっと高機能・ハイクオリティの外部サービスをお使いの場合はこの辺を書き換えていただいたらよいかと。

あと、出力時のエンコーディングも指定できます。

asin_js.cgi?asin=ASINコード&enc=文字コード

文字コードは以下のものを指定できます(指定するのは左側の文字列です)

sjis
Shift_JIS
jis
JIS(ISO-2022-JP)
euc
EUC-JP
utf8
UTF-8

EUC-JPで出力されているサイトの場合、次のようなカタチとなります。

sub amazon_async_tmpl{
  return << "END_OF_TMPL";
<script src="/blog/asin_js.cgi?asin=<TMPL_VAR NAME="Asin">&enc=euc">
</script>
END_OF_TMPL
}

ちなみにリファラのチェックなど厳格なことはやってません。

外からアクセスされてもアソシエイトIDは自分のものなので、勝手にやってちょーだいというスタンスでよいかと思います(笑)

  • †1: このサーバ自体はFile::FileCache入ってないのです…。負荷が結構かかりますです orz

2005年06月26日

mt-sukeroku2 β2公開

引き続きmt-sukeroku2のβ2をリリースします。

追加・修正点

  • 共通
    • Amazon詳細情報記法に購入ボタンとウィッシュリスト追加ボタンを追加した。
    • Amazon詳細情報非同期出力機能を追加した(ASIN:xxxxx:async記法。使い方はこちらをご覧下さい。)
    • Wikiキーワード記法(半角の[]で囲むなど)をした場合のキーワード検索先をKiseru->html->{defaultKeyword}で設定できるようにした。
    • リストの入れ子のレンダリングを修正した。†1
    • 脚注のtitle属性の抜けを修正した。†2
    • 脚注のtitle属性内に要素記述があった場合、インラインの内容やALT属性を抜き出すようにした。
  • はてな
    • テーブル記法に対応した。(β1であったような気がしますが)
  • おまけ
    • Amazon詳細情報非同期出力機能の試験実装であるasin_js.cgiを添付した。†3

HTML Attributeのオプション付与以外はほぼ移植しきったかなと思います。

後はバグ潰しとクラス構造の修正…というところでしょうか。

ダウンロード

Download : mt-sukeroku2_200506262359.zip

不具合報告・要望について

当記事のコメント欄に書いていただいたり、Trackbackによる告知などをいただきましたら、追跡調査いたします。

その際、以下の内容を併記下さい。

  • ご使用のperlのバージョン
  • ご使用のMTのバージョン
  • ご使用のmt-sukeroku-plus.plのバージョン
  • 不具合箇所およびエラー発生行番号(およびメッセージ)
  • 発生するテキストフォーマット

迅速な対応をお約束できるものではありませんが、以上よろしくお願いします。

もし不都合がある場合、もしくはTrackbackが打てないなどの状況下である場合はメールまたはmixiなどで捕まえてください。

ご協力よろしくお願いします。

  • †1: 徒波の涼さんのご指摘によります。その他のご指摘も含め感謝いたします。
  • †2: QED-JPの踝祐吾さんのご指摘によります。感謝いたします。
  • †3: mt.cgiと同じフォルダに配置し、実行権限を付与してください。

2005年07月04日

とりあえずmt-sukeroku2用Greasemonkeyスクリプトを作ってみました。

今まで食わず嫌いだったGreasemonkey †1ですが、実際に使ってみると思いのほか楽チンだし、面白い。

ってことで、早速mt-sukeroku2のamazonリンク用のスクリプトを作ってみました。

こんな感じでAmazonの商品ページのタイトルの下にボタンが表示され、クリックするとmt-sukeroku2用(一部plusでも可)のテキストが表示されるので、クリップボードにコピーする・・・という流れを作れます。

20050704_1.jpg 20050704_2.jpg

尚、作成にあたり全面的にAll Consumingの河野さんが作られたスクリプトを参考にさせていただいています。ありがとうございます。

Greasemonkeyインストール後、以下のリンクを右クリックし、Install User Scriptを選択してお試しください。

CreateAmazonAffiliate4MTSukeroku2.user.js

  • †1: 解説サイトですが…

2005年07月10日

mt-sukeroku2 β3公開

ちょっとはてなブックマークなツールばかりいぢっていたので間が空きましたが、mt-sukeroku2のβ3をリリースします。

基本的にバグ対策版です。

追加・修正点

  • 共通
    • 出力用エンコーディングをmt.cfgの内容を取得するようにした。
    • Amazon詳細情報記法に購入ボタンとウィッシュリスト追加ボタンをデフォルトで表示しないようにした(^^;
    • Amazon詳細情報記法の戻り値が化ける現象(Perl 5.8.0固有?)を回避するforceUtf8FlagDecodeというパラメータを追加した。(詳細は後ほど)
  • はてな
    • コメント内に段落以外の記述をすると、コメント扱いされない不具合を修正した。(非営業マンのDTP・営業用(?)メモさんのご指摘によります。ありがとうございます)

forceUtf8FlagDecodeパラメータについて

ぼくが持っているロリポップのサーバでAmazonDetail記法を使った際に化け化けになるという現象が生じました。それ以外の環境では出ない現象なので解決にかなり手間取っていたわけです。

結果的にEncode.pmのutf8::decodeを利用することで解決できることが分かったのですが、この現象が出ない環境では逆に化けてしまうし、Perl 5.005の環境などでは見事に@INCにモジュールがないよと起こられてしまうので、evalで逃げています。

そのため、この処理を行うかどうかを上記のパラメータの値で判断するというフローにしています。

ASIN:xxxxxxxx:detailを使ってもしも化ける環境である場合はこのパラメータを1としてください。

(デフォルトでは0になっています)

ダウンロード

Download : mt-sukeroku2_20050710.zip

不具合報告・要望について

当記事のコメント欄に書いていただいたり、Trackbackによる告知などをいただきましたら、追跡調査いたします。

その際、以下の内容を併記下さい。

  • ご使用のperlのバージョン
  • ご使用のMTのバージョン
  • ご使用のmt-sukeroku-plus.plのバージョン
  • 不具合箇所およびエラー発生行番号(およびメッセージ)
  • 発生するテキストフォーマット

迅速な対応をお約束できるものではありませんが、以上よろしくお願いします。

もし不都合がある場合、もしくはTrackbackが打てないなどの状況下である場合はメールまたはmixiなどで捕まえてください。

ご協力よろしくお願いします。

About Sukeroku

ブログ「ささやかなる実験場の開発室」のカテゴリ「Sukeroku」に投稿されたすべてのエントリーのアーカイブのページです。新しい順番に並んでいます。

前のカテゴリはGoogleMapsEditorです。

次のカテゴリはTechnologyです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type