2006年3月27日 (月)
これはココログのテンプレートで使っている CSS が overflow:hidden を設定しているためです。これがわかるまでは、page-break (改ページ)まわりの設定や自作スクリプトがはく HTML のコードが悪いのかとかなり悩みました。
CSS がエディットできるなら、例えば次を足せば良いはずです。
|
@media print {
#calender, #left, #right, div.comment-form {display:none;}
#container {margin: 0 0 0 0; width:100%; border:0;}
#center {margin: 0 0 0 0; width:100%; overflow:visible;}
.content {margin: 0 0 0 0; padding: 0 0 0 0;}
}
|
ちなみに display:none はサイドバー等を表示しないようにするために付けています。必要に応じて修正してください。
2006-03-28 のココログのバージョンアップでココログプロでないユーザーも CSS が一部使えるようになるようですね。……どうなることやら。
| 更新: |
2006-03-27 |
| 初公開: |
2006年03月27日 02:07:16 |
| 最新版: |
2006年03月27日 21:04:48 |
2006-03-27 02:07:13 (JST) in Firefox, HTML/XML/CSS, ウェブログ・ココログ関連 | 固定リンク
|
| トラックバック (0)
2006年3月15日 (水)
普通
Mew の Summary では 'i' [mew-summary-retrieve] を押したあと、パスワードの入力を求められる。私は複数の case を使い分けているのでこの入力を'C-g' [keyboard-quit] で止めようとすることがしばしばあるが、残念ながら止まってくれない。
特に今の Mew は +queue を flush する際に draft の case を使ってくれないので、case ごとに SMTP サーバを切り換えたりする私にとっては、'C-g' で +queue が flush されるのを阻止できないのが非常に不満だった。
この原因の一つは、Mew が inhibit-quit を真にして他のバッファでエディット中に'C-g' が押されてもバックグラウンドプロセスが影響を受けないようにしていることにある。mew-read-passwd を使うときには一時的に inhibit-quit を nil にして 'C-g' を使えるようにしているのだが、その返り値が 'C-g' を押された結果の空文字列であったとしても、その後の関数内で処理を怠っているのだ。
原因のもう一つは、flush が処理が完了してなかろうとも実行されてしまうことにある。
そこで、少しダーティだが、mew-read-passwd に advice して 'C-g' が押されているかもしれないなら大域脱出し、process 終了後の hook を使い、処理が完了していなければflush しないようにした。以下のようにすれば良いようだ。
|
;; パスワードが入力されなかった場合、+inbox フォルダのプロセスを kill し、
;; エラーを signal する。
(defadvice mew-read-passwd
(around mew-read-passwd-enable-quit (prompt) activate)
(let ((pass ad-do-it))
(when (or (null pass) (string= pass ""))
(save-excursion
(set-buffer (mew-inbox-folder))
(when mew-summary-buffer-process
(mew-summary-kill-subprocess)))
(error "Empty Password or Keyboard quit."))))
;; 実行時スコープが甘い Lisp だからこそできる荒業
(add-hook 'mew-pop-sentinel-hook
(lambda ()
(if (or error (not done))
(setq flush nil))))
|
副作用としてパスワードに空文字列が使えなくなるが、多くの場合問題ないものと思う。
| 更新: |
2006-03-15 |
| 初公開: |
2006年03月15日 13:37:02 |
| 最新版: |
2006年03月18日 10:53:18 |
2006-03-15 13:36:57 (JST) in Emacs/Meadow | 固定リンク
|
| トラックバック (2)
2006年3月 4日 (土)
それを Meadow と Cygwin の bash を使って走らせることにする。Cygwin の
ImageMagickも使えるようにしておかねばならない。
2006-03-04 06:44:26 (JST) in Cygwin, Emacs/Meadow | 固定リンク
|
| トラックバック (0)
2006年3月 2日 (木)
なかなか Google がクロールしてくれないので、
Google Sitemapの機能を試してみる。Google Sitemap には Atom 0.3 でも良いから当初はそうしていたのだが、2 週間ほどたっても音沙汰なしだったので Google Sitemap 専用の XML フォーマットを使うことにした。
すでに下記参考のようにいくつかのサイトで Movable Type や Type Pad のテンプレートを使って Sitemap を作る試みがなされている。しかし、それらのテンプレートはあくまで一つのブログを対象にしたものでしかない。このサイトは複数のブログを管理しており、一つ一つブログのサイトマップを登録することもできるのだが、
Google Sitemap Index という形式を使えばよりスマートに Sitemap を作ることができそうだとわかった。
2006-03-02 03:12:23 (JST) in ウェブログ・ココログ関連 | 固定リンク
|
| トラックバック (1)
2006年3月 1日 (水)
Firefox の拡張に
DictionaryTip があります。ダブルクリックすると
goo 辞書などを引いてミニウィンドウを出してくれるものです。同じようなことを《
DDwin.js》を用いてやるには、
JSActions のスタートアップスクリプトを可能にして、そのスクリプト内で、イベントリスナーにダブルクリックに対して DDwin.js を呼ぶよう登録するだけです。
|
| 0. |
すでに firefox_jsa/selection/DDwin.js があるとします。
|
| 1. |
JSActions の設定で Enable Startup Script のチェックボックスを on にします。
|
| 2. |
firefox_jsa/startup というフォルダを作ります。
|
| 3. |
|
|
以上でできるようになるはずです。
|
// DDwin をダブルクリックで起動。
// firefox_jsa/selection/DDwin.js を呼ぶ。
if (document && "addEventListener" in document) {
document
.addEventListener("dblclick", function (e) {
if (/* e.ctrlKey && */ e.button == 0) {
var scrList = JsActions.getScriptList("selection");
for (var i in scrList) {
var scr = scrList[i];
if (scr.path.match(/DDwin.*\.js$/i)) {
JsActions.execScript(scr.path, scr.uri, e);
e.stopPropagation();
break;
}
}
}
}, true);
}
|
selection/DDwin.js がなく、Button/70_NL_DDwin.js のみがある場合は、もちろん、selection/DDwin.js を置くか、上の JsActions.getScriptList("selection") を JsActions.getScriptList("Button") に換えれば OK です。
| 更新: |
06/03/01 |
| 初公開: |
2006年03月01日 19:47:02 |
| 最新版: |
2006年03月04日 07:49:55 |
2006-03-01 19:46:57 (JST) in Firefox | 固定リンク
|
| トラックバック (0)
2006年2月27日 (月)
Firefox について同じようなことをやってる人がいた。《
chez sugi:firefox と DDWin》を参照すると、EPWING の規格上、独仏語だとアクセント文字がないほうが良いらしい。ちなみに latin-1 の文字列を sjis にencode しようとすると、アクセント記号と文字にわかれるのではなく、文字化けしてしまう。
そういったわけなので、アクセント付の文字をいちいちアクセントなしに変換する関数を書いた。私は独仏語辞典を持ってないから、Deja vu とかそのあたりの国語辞典に載ってる単語でしか確認できないけど。
| 更新: |
06/02/27 |
| 初公開: |
2006年02月27日 00:37:55 |
| 最新版: |
2006年02月27日 10:01:42 |
2006-02-27 00:37:52 (JST) in Emacs/Meadow, Firefox, Windows アプリ | 固定リンク
|
| トラックバック (0)
2006年2月26日 (日)
それで次のようなことをしようとしたんだけど、pipe のコマンドの引数をリストでは渡せないっていわれる。
|
open(GPG, '-|', $GPG, '--list-keys') or die;
|
しょうがないので、コマンドラインを連結しましょうということになったのだが、Windows の cmd.exe の構文がわからない。
ググってみると《
CMD.EXE TIPs》という Wiki に構文が書いてあった。そこの文章を参考にいろいろ試してみたけど、次みたいのでいいのかな?
|
sub quote_for_command {
my $r = "";
while (@_) {
my $arg = shift;
$arg =~ s/\%/^\%/gs;
$arg =~ s/"/"""/gs;
$r .= " " if $r ne "";
$r .= "\"$arg\"";
}
return $r;
}
|
でもこういうのは需要あるはずだから探せば見つかりそうなものなのに、 Perl でやってるのを、ちょっと見つけられなかった。
| 更新: |
06/02/26 |
| 初公開: |
2006年02月26日 05:47:05 |
| 最新版: |
2006年03月11日 03:58:07 |
2006-02-26 05:47:03 (JST) in Perl, Windows アプリ | 固定リンク
|
| トラックバック (0)
Firefox の .xpi をいじろうとすると、locale の部分で .properties の拡張子を持ったファイルを JAVA で使える形式にしないとダメなんだそうだ。そのためのコマンドとして
native2ascii というものが
JDK に入っているらしい。
ものすごいテキトー。フィルタらしく一行づつ処理せず、ファイル全部をいったん読んで、一気に処理してる。--encoding=japanese と指定すると自動判別するんだけど、guess_encoding も最初の n バイトとかじゃなくて、全部わたして guess させてる。
まぁ、自分が使えりゃそれでいいし、ダメだったら JDK をすなおにインストールすればいいし。
| ■ |
更新
| 2006-02-28 |
|
| 2006-02-26 |
公開。
|
|
| 更新: |
06/02/26,06/02/28 |
| 初公開: |
2006年02月26日 05:31:34 |
| 最新版: |
2006年02月28日 03:47:16 |
2006-02-26 05:31:33 (JST) in JRF 作成ソフトウェア, Perl, Windows アプリ | 固定リンク
|
| トラックバック (1)
2006年2月25日 (土)
|
基本的には一本道で、次のような手順。
| 1. |
|
| 2. |
上と同じところから JSAButton をダウンロードし、インストール。 Button フォルダを作っておく。
|
| 3. |
DDwin 用の javascript ファイルを作る。例えば DDwin.jsを selection/ 以下に置き、さらに、これを Button/ 以下に名前を変えてコピーする。例えば 70_NL_DDwin.js などとする。
|
| 4. |
DDwin のアイコンを 適当なツールで取り出し、先の Button/ 以下に 70_NL_DDwin.png などとして書き出す。私は 16x16 で書き出した。
|
| 5. |
ツールバー上でカスタマイズを選択し、JSActionsButton というのを適当な場所に置く。このボタンを一度クリックすると、先のアイコンが表示される。
|
|
|
var query;
if(_jsaCScript.context.isTextSelected){
query = window.getSelection().toString();
} else {
var mes = "検索文字列を入力してください。";
mes = _jsaCScript.convertCharCodeTo(mes, "shift_jis");
query = prompt(mes, "");
}
if(query != null) {
query = remove_latin_1_accent(query);
query = query.replace(/^\s+/, "");
query = query.replace(/\s+$/, "");
query = query.replace(/^[\x21-\x2F\x7B-\x7E]+/, "");
query = query.replace(/[\x21-\x2F\x7B-\x7E]+$/, "");
query = _jsaCScript.convertCharCodeFrom(query, "shift_jis");
_jsaCScript.exec("c:\\Program Files\\DDwin\\ddwin.exe",
",2,Firefox用,G1," + query);
}
function remove_latin_1_accent(s) {
s = s.replace(/[\xC0-\xC5]/g, "A");
// ...省略...
s = s.replace(/[\u017F]/g, "s");
return s;
}
|
|
"Firefox用"は DDwin で使うグループ名。
|
ちなみに、これコマンドラインに渡すとき convertCharCodeFrom なんだよね。これを convertCharCode
To を使うと思ってはまってしまった。 JSActions 2.2.0 のバグかもしれないと思ったが《
掲示板》をよく見ると exec を使う例で、ちゃんと From でやっていた。
JSActions の今の管理人によると
| > |
ぶっちゃけ、自分も使ったときに間違ったんですが、JSActions 0.8系にあわせました。
|
……だそうで convertCharCodeFrom であっているよう。FromUnicode にしてくれたらわかりやすかったのに。
なお、通常ここに書いたようなことをやりたければ、
DDwin の配布ページでいっしょに公開している DDpop を使うのが普通なのかもしれません。
| ■ |
参考
|
| ■ |
ファイル
| DDwin.js |
|
JSActions の selection または JSAButton で使うためのスクリプト。
|
| DDwin-by-Dblclick.js |
|
JSActions の startup に置くことで、 DDwin.js をダブルクリックで呼べるようにする。
|
| EBWin.js |
|
|
| jsactions.patch |
|
jsactions_2.2.0.xpi でテキストエリアなどのセレクションも取れるようにするためのパッチ。要 .xpi の展開、ビルド。ただし、現在のバージョンではすでに統合されていて不要。
|
|
| ■ |
更新
|
| 2006-03-10 |
jsactions.patch を使うときフォームの中で button などについてもセレクションを取ろうとしてエラーになっていたので、text と textarea のみ対応することにした。
|
| 2006-02-28 |
フォーム内のセレクションに対応するための このパッチ を jsactions_2.2.0.xpi にあてた場合に対応。
|
| 2006-02-26 |
独仏語の検索のために latin-1 のアクセント記号を抜くようにした。単語の前後の非英数の ASCII 文字をとりのぞいた。
|
| 2006-02-25 |
セレクションがないときに入力ボックスを開くようにした。
|
|
|
| 更新: |
06/02/25-06/03/10,2009-02-26 |
| 初公開: |
2006年02月25日 01:08:37 |
| 最新版: |
2009年02月27日 19:29:25 |
2006-02-25 14:22:08 (JST) in Firefox, Windows アプリ | 固定リンク
|
| トラックバック (1)
2006年2月22日 (水)
プラグインを使わなくても
SSI とインデックステンプレートを組み合わせて使えば、「記事と同じカテゴリ内の最近の記事」を表示することができる。
当初、
Movable Type では Movable Type のタグの中で Movable Type のタグをネストして使うことはできないため、このようなことは不可能だと思っていた。
しかし、Apache 1.2 以降の SSI には if 文があり、その中で正規表現(というか部分文字列のサーチ = strstr)が使えることを知り、ココログプロで使える「新しいインデックステンプレート」と組み合わせれば、可能なはずだと思い致った。
問題は、このサイトではカテゴリ名に '/' を使っており、ラベルでカテゴリを指定すると正規表現の '/.../' とぶつかってしまうため、MTCategoryID を使いたいところだが、MTCategoryID は Category Archive 内などでそのまま使えない。今のところ Indivisual Archive に表示するだけなのであまり関係ないが、Archive 内などでサイドバーとして読み込もうとすると不具合が出るようにはしたくない。
2006-02-22 17:46:31 (JST) in ウェブログ・ココログ関連 | 固定リンク
|
| トラックバック (2)