LDRize Minibuffer 2007.09.19 の変更点に関して *

continue from: [LDRize Minibuffer 2007.09.02 の変更点に関して]

次の5つを変更しました。

  1. microformats(hAtom)に対応
  2. AutoPagerizeのaddFilterの使い方の変更
  3. 画面に中途半端に入っているパラグラフを非表示
  4. ショートカットキー(S-j)の追加
  5. ページの下の方まで来たら最下部に空白の要素の付け足し

1.microformats(hAtom)に対応 *

twitter検索LDRize microformats なら hAtom とか使うほうが良いよ。
という発言を見かけたので対応しました。

microformatsっていうのは、HTMLのclassやrelに決まった文字で意味づけをして、
LDRizeのようなプログラムから扱いやすくしよう!という動きみたいです。

hAtomについてはここ→http://microformats.org/wiki/hatom
サンプルはここ→http://microformats.org/wiki/hatom-examples
を見てください。
英語ですが、サンプルを見ながらやれば多分大丈夫。
実例はが見たい人はtwitterとか。

2.AutoPagerizeのaddFilterの使い方の変更 *

「addFilterの引数をコンテキストにしてXPathを評価できない」
と思ってたので使っていませんでしたが、使えたので使うようにしました。

AutoPagerizeには、ページ追加時に実行されるフックのようなものがあります。

var hoge = function(page){ ... };
window.AutoPagerize.addFilter(hoge);

のようにすると、AutoPagerizeがページを継ぎ足した時にhogeを実行してくれます。
関数hogeに降ってくる引数(page)は、ノードの配列です。(←ここでハマってました orz)

このノードの配列それぞれをコンテキストとして $X('id("res")/div', page[i]) のようにXPathを評価してやろうとすると、
id=resがpage[i]の親要素だった場合にマッチしなくなります。
それを考慮しつつXPathを考えるのはさすがに面倒なので、コンテキストは常にルート要素にして、
XPathにマッチしたノードが、page[i]自身かその子孫要素の時に、このノードは今回AutoPagerizeが追加した要素だ!
と判断するようにしました。
(あーなんか説明下手だな・・・すんません)

3.画面に中途半端に入っているパラグラフを非表示 *

逆に言うと、パラグラフが丸々画面に入っているパラグラフのみ表示します。
なんでそんなことするのかっていうと、次に書くS-jを使いたいからです。

4.ショートカットキー(S-j)の追加 *

抽象的に書いても分かりづらいので具体例で。

例えばGoogleの検索結果で1つ目から6つ目までは画面にちゃんと収まっていて、
7つ目が途中で切れてる(パラグラフの真ん中らへんから下が見えてない)状態だとします。よくありますよね。
ここでページダウンを押すと、7つ目の中途半端なところから見える状態に変化します。
でも、最初の状態で7つ目は中途半端にしか見えてないので、ちゃんと読んでるわけがありません。
なのに、ページダウンキーを押したら7つ目の途中からしか見えません。
7つ目をちゃんと見るためには、ページダウンした後に↑キーをわざわざ押す必要があるわけです。

これは面倒なので、最初の状態で中途半端にしか見えないものは表示しないようにして、
S-jをページダウンの代わりに使うことで、最初は1〜6が見えて、S-jを押したら7〜が見えて、といった具合になります。

つまり、ページダウンの代わりにS-jを押すと途切れた検索結果にイライラしなくて済むよ、ということですたぶん。

5.ページの下の方まで来たら最下部に空白の要素の付け足し *

スクロールさせて何かの要素を画面の一番上に持ってくるためには、その下に他の要素がないとスクロールできません。
なので、元々ページの下の方のパラグラフは画面上部にもってくることができません。
ページの下の方に余分な余白を挿入すれば、元々ページの下の方にあったパラグラフも画面上部にスクロールできる!と考えて、付け足すようにしました。
良く見たらLDR/FLDRではそうなってました。(=フィードが少ない時はスクロールするために下に余白を付ける)

でも最初から余白を付けるとAutoPagerizeが発動しなくなるので、ぎりぎりまで待って余白をつけるようにしました。
それでもたまに間に合わないことがあります。
なので、AutoPagerizeのページ取得の発動を他のGreasemonkeyからやりたい!とAutoPagerizeの作者のid:swdyhさんにtwitterで言ったつもりなんですが、華麗にスルーされてしまいました。
どーしよう。




あんまり関係ないですけど、HNをシロ(shiro)からsnj14に変えます。
shibuya.jsのswdyhさんのスライドでby snj14と書かれたっていうのもありますが、
以前から、他の方と被ってるのはイマイチだと思ってたので、ちょうど良い機会かなと思いました。
(Gaucheのshiroさんとか。もし混乱させた方が居たらごめんなさい。)
今までの記述で自分が修正可能なものは気が向いたら修正します。

Tag: diary GreaseMonkey - diary/2007-09-19 - 08:17:46

TrackBack(0)

トップ   編集 凍結 差分 BACKUP 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-09 (土) 05:51:38 (440d)