GithubでWikiを検索するUserScript書いた

Githubをがっつり使ってると、Wikiに仕様書いたりFAQや依存するModule書いたりと、Wikiを利用する機会は結構あって、Issueやソースコードには検索機能があるのに、Wikiには何故かないんだよね。Github内での優先順位が低いのかな?最初は、@morygonzalezに「Wiki内って検索出来ないけどどうすんの?」って言われて、「cloneしてack叩けば?」って言ったものの、ターミナルアレルギーなデザイナーは仕方ないとして、自分も他プロジェクトのをいちいちcloneして探すのは確かに面倒だなあと思ったわけ。なので、UserScriptを書いてみてGithub Wikiの全文検索がうまくいったのでお知らせしてみる。

なんか、バグ見っけたらGithubにIssue登録お願いします。もしくは、Pull Requestお願いします。

Screenshots

ページ右上に検索ボックス。

検索ワードを入力してEnterしたら検索開始。

検索結果は、非同期で見つかった順に表示。

Logic

生のjsガリガリ書くのは面倒だったのでjQueryを使った。

以下、コード中やってること。

  1. PagesタブにWikiの*全てのページのリンクがある*のでGETしてページのURLリストを作成。
  2. URLリストからコンテンツをGETして、検索文字をgrep。
  3. grepしてmatchしたら結果表示しつつ、次のコンテンツをGETしてgrepを繰り返す。

補足

  • 1度全ページロードしたらキャッシュしてる。ロードの状態は、プログレスバーで視覚的に分かるようにした。
  • 検索結果表示数が多いと もともと何のページか分からなくなるのであえて少なくしてる。(Wikiってそんなにページ数少ないし…)

Install

インストールは、userscripts.orgに登録してるので*Install*ボタンからどうぞ。

http://userscripts.org/scripts/show/129930

ブラウザは、以下で一通り動作するのを確認済み。