« 2006年2月 | トップページ | 2010年3月 »

2006年3月27日 (月)

Firefox でココログを印刷しようとすると本文が1ページ目しか表示されない

これはココログのテンプレートで使っている 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 が一部使えるようになっているそうなので、できることならば、サイト管理者が対応するべきでしょう。ユーザーが管理者に訴るべきと言いたいです。

続きを読む "Firefox でココログを印刷しようとすると本文が1ページ目しか表示されない"

2006-03-27 02:07:13 (JST) in ウェブログ・ココログ関連 HTML/XML/CSS Firefox | | コメント (6) | トラックバック (0)

2006年3月15日 (水)

Mew でパスワード入力時 C-g を押しても止まってくれない

普通 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 | | コメント (0) | トラックバック (2)

2006年3月 4日 (土)

Navi2ch でインラインに画像を表示する (Referer もつける)

最近の Emacs は画像をインラインに表示できるが、Navi2ch そのものは掲示板の画像をインラインで見ることができない。しかし、《2chログ:Navi2ch for Emacs (Part 11)》の 888 の記事にインライン表示をする elisp とそれ用のシェルスクリプトが書いてあった。

それを Meadow と Cygwin の bash を使って走らせることにする。Cygwin の ImageMagickも使えるようにしておかねばならない。

続きを読む "Navi2ch でインラインに画像を表示する (Referer もつける)"

2006-03-04 06:44:26 (JST) in Emacs/Meadow Cygwin | | コメント (2) | トラックバック (0)

2006年3月 2日 (木)

ココログプロで Google サイトマップインデックスを作る

なかなか Google がクロールしてくれないので、Google Sitemapの機能を試してみる。Google Sitemap には Atom 0.3 でも良いから当初はそうしていたのだが、2 週間ほどたっても音沙汰なしだったので Google Sitemap 専用の XML フォーマットを使うことにした。

すでに下記参考のようにいくつかのサイトで Movable Type や Type Pad のテンプレートを使って Sitemap を作る試みがなされている。しかし、それらのテンプレートはあくまで一つのブログを対象にしたものでしかない。このサイトは複数のブログを管理しており、一つ一つブログのサイトマップを登録することもできるのだが、Google Sitemap Index という形式を使えばよりスマートに Sitemap を作ることができそうだとわかった。

続きを読む "ココログプロで Google サイトマップインデックスを作る"

2006-03-02 03:12:23 (JST) in ウェブログ・ココログ関連 | | コメント (4) | トラックバック (1)

2006年3月 1日 (水)

DDwin.js をダブルクリックで呼べるようにする

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-by-Dblclick.js を置きます。


以上でできるようになるはずです。

// 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) | トラックバック (0)