Other/SpecificationOfSITEINFO

Last-modified: 2008-12-23 (火) 18:31:20

AutoPagerize for Seahorse, LDRize for SeaHorse の SITEINFO の仕様について

** Sleipnir Search [#td0f834f]
 url: 'http://www.google.(co.jp|com)/hws/search\\?.*client=fenrir.*',
 nextLink: 'a#nextPageUrl',
 pageElement: 'div#pnirRight+div>*:not(#tpa1):not(#navbar)'
** Google [#j8e5b52b]
  url: 'http://.+.google..+/search\\?.+',
  nextLink: 'td:has(#nc)+td>a, td.cur+td>a',
  pageElement: 'div#res li.g'

上記のようなwiki記法(ソースページ)をパースする
**から、次の**もしくは</pre></div>までを1つのSITEINFOとみなし、{}で中のコードをくくる
その際に、最初の行(改行コードまで)を削除する

{
  url: 'http://www.google.(co.jp|com)/hws/search\\?.*client=fenrir.*',
  nextLink: 'a#nextPageUrl',
  pageElement: 'div#pnirRight+div>*:not(#tpa1):not(#navbar)'
}

上記処理を</pre></div>(ページ終端)を発見するまで継続する。その際に}の末尾に,を付加する。

{
  url: 'http://www.google.(co.jp|com)/hws/search\\?.*client=fenrir.*',
  nextLink: 'a#nextPageUrl',
  pageElement: 'div#pnirRight+div>*:not(#tpa1):not(#navbar)'
},
{
  url: 'http://.+.google..+/search\\?.+',
  nextLink: 'td:has(#nc)+td>a, td.cur+td>a',
  pageElement: 'div#res li.g'
}

という泥臭い変換処理を行っている。

また、SITEINFO を取得しに行くURLは、setting.js の SITEINFO_URLS に記載されている。
SITEINFO_URLS に記載されている URL の末尾が数字だった場合は、その数字を +1 して次のページを取得しに行く。
そのページに SITEINFO らしき書式が無ければ、その時点で終了する。

ごちゃごちゃと書いたが、pukiwiki に同様の書式で記載して、pukiwiki の source プラグインをインストールして、対象ページの cmd=source を setting.js の SITEINFO_URLS に記載すれば SITEINFO を別ページで管理可能だと思う。