このページにいるときは、いつもあのページに行きたい
仕事でブラウザを使っていると、「このページを見ているときは、だいたいあのページにも行きたくなる」という組み合わせがあります。
- GitHub の Issue を見ているときは、関連する設計ドキュメントを開きたい
- リポジトリのデプロイ設定画面からは、公開中の検証環境へ飛びたい
- ステージングを確認したら、本番の同じページも見たい
- 管理画面で記事を直したら、公開ページで反映を確かめたい
- ChatGPT のあるスレッドで議論しているときは、その前提になっている仕様書を手元に置きたい
どれも、行きたい先は「今いるページ」で決まっています。そして少しやっかいなことに、こうした組み合わせは仕事やプロジェクトの数だけ増えていきます。
普通に用意されている道具はブックマークです。しかし、よく使うものをブックマークバーに並べていくと、すぐに埋まってしまいます。フォルダで整理すれば、今度は使うたびに「これはどのフォルダだったか」と、こちらから探しに行くことになります。履歴やアドレスバーの候補に頼るのも、記憶と運の勝負です。
問題は、ブックマークの数や整理の仕方ではなさそうです。
ブックマークは「グローバル」である
ブラウザのブックマークは、どのページを開いていても同じ一覧が並びます。Issue を見ていても、管理画面を見ていても、ニュースサイトを見ていても、変わりません。今見ているページと、そこに並んでいるリンクの間には、何の関係もありません。
プログラミングにたとえると、すべてがグローバル変数になっている状態です。どこからでも参照できて便利な一方、数が増えるほど名前空間が汚れ、今の文脈で意味のあるものを探すのが難しくなります。フォルダは名前空間を切るのに似ていますが、どの名前空間を使うかは毎回人間が選ばなければなりません。
プログラムの世界では、この問題を「スコープ」で解いてきました。変数は定義された場所の中でだけ見え、外に出れば見えなくなります。どれを使うかを選ぶのではなく、今いる場所が見えるものを決めます。
書き込めるページと、書き込めないページ
ここで一つ区別しておきたいことがあります。Notion や自分の Wiki のように、ページそのものを自分で編集できるなら、関連リンクはページの中に書けば済みます。それはもう十分に「スコープを持ったリンク」です。
困るのは、自分ではリンクを足せないページです。
- ChatGPT のスレッドに、参照している仕様書をひも付けておきたい(発言の中には書けても、スレッドそのものには置き場所がない)
- SaaS の管理画面から、社内の手順書へ飛びたい
- GitHub のデプロイ設定画面から、公開中の URL へ飛びたい
こうしたページは他人のサービスの中にあり、ページ側には手を入れられません。ブラウザ側で「このページにいるときだけのリンク」を持てればよいのですが、ブックマークにはその仕組みがありません。
Scoped Bookmark
この記事では、スコープを持ったブックマークを次のように呼びます。
Scoped Bookmark:特定のページ(または URL の範囲)にいるときだけ一覧に出るブックマーク。
(注:macOS や iOS には「Security-Scoped Bookmark」という用語があります。サンドボックス内のアプリが、ユーザーの選んだファイルへのアクセス権を保持するための仕組みで、この記事の Scoped Bookmark とは別物です。)
普通のブックマークが「ユーザーの持ち物」だとすれば、Scoped Bookmark は「ページの属性」です。分類(フォルダやタグ)ではなく、場所で整理されます。
構成要素
Scoped Bookmark は、次の3つでできています。
| 要素 | 意味 | 例 |
|---|---|---|
| スコープ | どこにいるときに出るか(作成元の URL、またはその範囲) | ある Issue のページ |
| ターゲット | どこへ飛ぶか | 設計ドキュメント |
| 現れ方 | スコープ内にいることをどう知らせ、どこに並べるか | アイコンの件数表示、ポップアップの一覧 |
スコープとターゲットはどちらも URL ですが、役割が違います。普通のブックマークにはターゲットしかなく、スコープは常に「どこでも」だと考えると、違いがはっきりします。
行き来する組み合わせ(前述のステージングと本番など)は、スコープとターゲットを入れ替えた2つの Scoped Bookmark で表せます。
性質
- 探しに行かなくてよい:フォルダをたどらなくても、そのページで一覧を開けば、そのページ向けのリンクだけが並びます。
- スコープの広さを選べる:1ページだけに限ることも、あるパスの配下全体に広げることもできます。広げすぎれば、もう一度グローバル変数に戻っていきます。
この発想そのものは新しいものではありません。URL パターンやドメインにブックマークをひも付ける拡張機能は、以前からいくつもありました。ただ、この種のブックマークを指す名前は、探した範囲では見当たりませんでした。名前があれば、説明も比較もしやすくなります。そこでこの記事では、「Scoped Bookmark」と呼ぶことにします。
この考え方を、Chrome 拡張機能「Jumpmark Dock」として実装しました。
似ているもの・先行するもの
判断の軸は一つです。今いる場所によって、出るものが変わるかどうか。
ブラウザの標準機能
ブックマークのフォルダ、タブグループ、リーディングリストはどれも便利ですが、今開いているページが何かで中身は変わりません。ページ内のリンクは場所にひも付きますが、自分で書き込めるページに限られます。
用途別にブックマークバーを切り替える
同じ悩みへの別の解き方として、用途ごとにブックマークバーの中身を切り替える方法があります(例:Chrome または Edge でブックマークを用途別に切り替えて使う方法)。
前述のたとえで言えば、これは名前空間を自分で切り替える方法です。仕事の切り替えが大きい単位で起きるなら、このほうが合います。Scoped Bookmark は、今いるページがそのまま名前空間になり、ページを移るたびに自動で切り替わります。
先行する拡張機能
この発想は、以前から拡張機能として試みられてきました。見つけたものを、「何を単位に出し分けるか」で並べると次のようになります。説明は各ストアの掲載内容によります。
| 名前 | 出し分けの単位 | 内容 |
|---|---|---|
| abctx(2014年) | URL パターン | 登録したパターンに合う URL を開いたときだけブックマークを表示 |
| Domain Bookmarks(前作 In-Site Bookmark) | ドメイン | 開いているサイトのブックマークだけをサイドパネルに表示 |
| Bookmark Manager per Domain and Page | ドメイン、ページ | 既存のブックマークから、現在のドメインやページに属するものを一覧 |
| Relevant Bookmarks | 現在の URL との関連 | 既存のブックマークから関連するものを実行時に抽出 |
ブックマーク以外では、「ページを手がかりに関連情報を出す」発想がノートの分野にもあります。Obsidian Web は、開いているページについて書いたノートがあれば知らせてくれます。また、別の軸として、HYPER-ANCHOR(2011年)はページ内の文字列をブックマークしました。こちらは「どこを指すか」の粒度、Scoped Bookmark は「どこで見せるか」の粒度を扱っています。
つまり、同じ発想は以前から点在していました。この記事はそれを「Scoped Bookmark」と名付けて整理しようとするものです。
Scoped Bookmark を試せる形にしたのが、Chrome 拡張機能「Jumpmark Dock」です。あるページで拡張機能のアイコンを開くと、そのページにひも付いたリンクだけが並びます。

実装では、「同じページ」をどう判定するか、行き来するペアをデータとしてどう持つか、同期用ストレージの容量にどう収めるか、といったところで考えることがありました。その話は、別の記事で書く予定です。
おわりに
「自分もこういうものが欲しかった」「こういう場面でも使えそう」といった声をいただけると、とてもうれしいです。
コメントを残す