Javascriptライブラリをgzip圧縮する

うちのサイトを構成してるファイル群を見ると、一番大きなファイルは画像ファイルではなく、prototype.jsだった。なんと123.17KBもあるのだ。Webalizerの統計によると、サイト全体の転送量の10%を占める。
100220-0001.png

こぶたのラッパ : 世界の片隅で.jgzと言ってみる
http://smil.exblog.jp/4650470/

早速、生のprototype.jsとgzip圧縮したprototype.jgzを用意した。prototype.jsのバージョンは1.6.0.2だ。

$ cp prototype.js prototype.tmp
$ gzip prototype.tmp
$ mv prototype.tmp.gz prototype.jgz
$ ll prototype.*
-rw-r--r--@ 1 delphinus  staff   29166  2 19 12:29 prototype.jgz
-rw-r--r--@ 1 delphinus  staff  126132  3 10  2008 prototype.js

Continue reading

SyntaxHighlighterでYAMLをハイライトする

当然と言えば当然だが、TT2 のとき(その1その2)よりは遙かに楽だった。

# サンプル
arg1: value1
arg2:
    -   [ value2, value3 ]
    -   arg3:
            - value4

修正・作成するファイルは2つ。

ファイル名
/mt/plugins/SyntaxHighlighter/lib/SyntaxHighlighter/Plugin.pm

        'html'=>'shBrushXml',
        'xhtml'=>'shBrushXml',
        'tt' => 'shBrushTT2',
        'tt2' => 'shBrushTT2',
# 前回の修正の直後に書き加える
        'yml' => 'shBrushYAML',
        'yaml' => 'shBrushYAML',
    );

ファイル名
/mt-static/plugins/SyntaxHighlighter/2.0/scripts/shBrushYAML.js

/* こっちは新たに作成する
   かなり大雑把だけど、一応の役には立つよね */
SyntaxHighlighter.brushes.YAML = function() {
    this.regexList = [
        { regex: /#.*$/gm,     css: 'comments' }
        ,{ regex: /\w+:/g,     css: 'keyword' }
        ,{ regex: /[^#:]+$/gm,    css: 'string' }
        ,{ regex: SyntaxHighlighter.regexLib.doubleQuotedString
            ,css: 'string' }
        ,{ regex: SyntaxHighlighter.regexLib.singleQuotedString
            ,css: 'string' }
    ];
};
SyntaxHighlighter.brushes.YAML.prototype
    = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.YAML.aliases
    = ['yml', 'yaml'];

最後にMTのHTMLヘッダーテンプレートを書き換えて完了だ。

<$mt:SyntaxHighlighterInclude brush="html,perl,jscript,bash,tt2,plain,sql,yaml" theme="default"$>

特定のメール(Outlook)を自動的に削除するスクリプト

社内で「特定人物向けのメールを全員に送信しちゃった! 何とかして!」と言われたときに作ったスクリプト。グループポリシーを使ってPCにログオンしたときに起動するように設定することを想定している。Outlookを自動的に起動して受信メールをチェックし、条件に合うもの(今回は特定の語句を題名に含むもの)を削除する。

Continue reading

SyntaxHighlighter でTemplate Toolkitをハイライトする その2

前回の状態ではTT2構文のハイライトはうまくいくものの、本来の用途である、HTML中に埋め込んだ状態ではそれが反映されなかった。それは今回使用したプラグインにおける以下の仕様のためだ。

SyntaxHighlighter for Movable Type « kwLog

  • SyntaxHighlighterのconfigurationには対応していません

よってプラグインの構文を無理矢理拡張して対応。さらにカラフルになった。

#!/usr/bin/perl
use utf8;
use strict;
use warnings;
use errors;

my $word = shift;
if ( $word =~ /orz/ ) {
    die "ズコー";
}

Continue reading

SyntaxHighlighterでTemplate Toolkitをハイライトする

これは結構大変だった。前回いじったshBrushPerl.jsと同じ場所1shBrushTT2.jsを置いても、それだけでは反映されない。次のファイルをいじる。

/mt/plugins/SyntaxHighlighter/lib/SyntaxHighlighter/Plugin.pm

# 149行目あたりに2行を追加
        'html'=>'shBrushXml',
        'xhtml'=>'shBrushXml',
        'tt' => 'shBrushTT2',
        'tt2' => 'shBrushTT2',
    );

これで後はHTMLヘッダーテンプレートに”tt2″を加えるだけだ。

<$mt:SyntaxHighlighterInclude brush="html,perl,jscript,bash,tt2,plain" theme="default"$>

肝心のshBrushTT2.jsの中身は次の通り。

Continue reading

SyntaxHighlighterにハイライトしたい語句を追加する

Perl5.10で登場した語句や、Mooseなキーワードがハイライトされないのでそれを改良。といっても大したことはない。次のファイルをいじる。

/mt-static/plugins/SyntaxHighlighter/2.0/scripts/shBrushPerl.js

// 53行目あたり
'undef unlink unpack ... ' +
'say';
// 59行目あたり
'require return sub ... ' +
'try catch with using otherwise finally given when state BEGIN END ' +
'extends requires has';

後は必要なときに付け足していこう。

Image::Magickのインストール@Mac OS X

Movable Type の必要モジュールのうち、Image::Magick がなかなか入らなかった。結局これが一番手っ取り早いみたい。

Installing ImageMagick on OSX (Global Moxie)
http://globalmoxie.com/blog/imagemagick-install-osx.shtml

長々と書いてあるが、真ん中のこれでうまくいった。-no_x11 じゃなくて、+no_x11 でした。4 ヶ月も経って気づいたorz

$ sudo port install ImageMagick +no_x11 +perl

Image-Magick 本体と、Perl のバージョンが合わないから云々が理由だった由。