【Perl】HTML / XML の 整形には tidy“p”?

HTML や XML の整形ツールとして有名なものに HTML Tidy(以下、単に tidy と呼ぶ) がある。このツールは既に 10 年以上の歴史を持つが、最近では更新頻度がだいぶ落ちてた。tidy を Perl 上から使うには HTML::Tidy というモジュールを使うのだが、tidy の最新版がうちの環境(Mac OS X 10.6 + Perl 5.10.1)ではうまく動かず、えらい苦労させられた。

【MovableType】Tidy を使って HTML を整形するプラグイン | blog.delphinus.dev
https://blog.delphinus.dev/2010/03/tiding-movabletype.html

HTML::Tidyについて追試 | blog.delphinus.dev
https://blog.delphinus.dev/2010/03/resit-html-tidy-install.html

こうした中、HTML::Tidy の作者は一向に更新されぬ tidy に業を煮やしたのか、自ら互換プロダクトを開発することにしたらしい。それが tidyp だ。

Continue reading

【MovableType】AWStats を使って人気記事ランキングを作る

MT で人気記事ランキングを作るとすると MT-MostVisited プラグインを使うのが一般的だ。

MTで人気記事ランキングを作る - #BLOG
http://www.masahiko.info/blog/archives/000100.html

このプラグインは Apache のログから直接統計データを得て作成するものだが、次のような欠点がある。

  1. ログファイルが大容量になると時間がかかりすぎる。
  2. URL に entry_id を使うことを想定しているので、(このブログのように)URL をカスタマイズしているとうまくデータを拾えない。

これを解決するために MostVisitedAlternative プラグインというのを自作してみた。このサイトの左に見えているランキングがそれだ。

Continue reading

【MovableType】エントリーの中でタグを使う(改訂版)

以前、「【MovableType】エントリーの中でタグを使う」で書いた Templatize プラグインだけども、この機能は MT 4.2 より本家に取り込まれていたのを今頃気づいた。

小粋空間: mteval モディファイアと numify モディファイア
http://www.koikikukan.com/archives/2008/06/13-022222.php

mteval | グローバル・モディファイアリファレンス
http://www.movabletype.jp/documentation/appendices/modifiers/mteval.html

この機能は本家仕込みだけあってより柔軟で、タグの誤爆を防ぐために姑息な手段を使う必要がなくなった。具体的には、

<a href="&lt;mt:Link entry_id="xx"&gt;">リンク</a>

等と書く必要はなくなり、

<a href="<mt:Link entry_id='xx'>">リンク</a>

で問題なくなった。又、本文中にタグのリテラルを書くために、「<&#x200b;$mt:EntryTitle$>」等と、幅ゼロのスペース(U+200b)を挟む必要もなくなり、「<$mt:EntryTitle$>」と書けるようになった。

まあ、こんなこと未だにやってたの僕だけかも知れないが、備忘録としておいておく。

【MovableType】iPhone 用に Youtube を縮小表示する

Youtube の動画を記事に貼り付ける場合、該当する動画にあるリンクをコピペするわけだが、その際に動画のサイズを自由に設定できる。

YouTube 動画のブログへの取り込み方とサイズ変更 ブログパーツナビ Blogparts-NAVI
http://blog-parts-navi.seesaa.net/article/54679632.html

100517-0001.png

最近の動画は横幅 640px(縦横比 16:9)、480px(縦横比 4:3)と言った大型のものが主流になっており、通常のブラウザなら問題ないのだが、iPhone では横にはみ出してしまう。以前、「【MovableType】エントリーの中でタグを使う」で行った方法と同じように Javascript でいじる方法を試したのだが、これはうまくいかなかった。しょうがないので MT のプラグインでこれを実現してみる。

Continue reading

【MovableType】テンプレートで Switch 文を使う

記事にタグを付けまくっていたら、タグクラウドが混沌として訳のわからない状態になってきた。一定数以上の記事に付いているタグだけを表示できたらよいのだが、タグクラウドを生成するために使っている <mt:Tags> タグではそのような制限が出来ない。そこでこのプラグインを使う。

MT のコメントのカスタマイズ – lucky bag
http://www.lucky-bag.com/archives/2005/05/comment_style.html

Movable Type plugin: MTSwitch – Arve Bersvendsen
http://virtuelvis.com/archives/2003/03/mtswitch

このプラグインによって switch ~ case ~ default 文のような条件分岐が書けるようになる。タグクラウドを生成するウィジェットを次のように変更してみた。

Continue reading

【Perl】Last.fmの履歴からiTunesプレイリストを作る(Windows編)

iTunesのスマートプレイリストを使うと再生回数の多い曲だけを集めたプレイリストができる。だがライブラリの仕様上、再生回数は“曲ごとに”集計される。同じ曲が色んなアルバムに点在している場合は回数がばらけてしまうのだ1

100409-0001.png

同じ曲がわらわら……。ダンスミュージックばかり聴いてるとこうなってしまう。

100409-0002.png

そこでLast.fmを使う。

日頃から再生履歴を送信しておくことで、再生回数をかなり正確に見積もることができる。最近になって、曲名・アーティスト名の表記揺れを訂正してくれる機能が付いたので更に便利になった。

lastfm.pl

というわけで作ったのがこのスクリプト。だが、作ったのは数ヶ月前なので中身はあんまり覚えてなかったり……。とりあえずこんな感じで動きます。

Continue reading