ブラウザの検索エンジン機能を使って作る自分だけの .new キーワード

Google がレジストラとして所有している **.new というトップレベルドメイン** があります。

この .new、何かを新規作成するような連想が出来ることを利用して、まずは Google Documents などの Google 製のウェブアプリケーションの新規作成をブラウザのアドレスバーに docs.new などと打つことで行えるようになりました。

- [Google、Webブラウザで「doc.new」と入力するだけで新規ドキュメント作成可能に - ITmedia NEWS](https://www.itmedia.co.jp/news/articles/1810/28/news018.html)

その後 Google 以外の各社へドメイン登録が解禁されました。

- [Googleが新文書を作成する「new」ショートカットをマイクロソフトやSpotifyなどに公開 | TechCrunch Japan](https://jp.techcrunch.com/2019/10/30/2019-10-29-google-brings-its-new-domains-to-the-rest-of-the-web-including-to-spotify-microsoft-others/)

どんな .new があるの？という疑問には [whats.new/shortcuts/](https://whats.new/shortcuts/) に現在有効な .new 一覧が書かれています。

- [.new - Google Registry](https://whats.new/shortcuts/)

Qiita 内の参考記事：

- [Googleが提供するドメイン「.new」が便利らしい - Qiita](https://qiita.com/Hirai0827/items/a817655f037db1942158)

この記事では、個人で使っているブラウザに自分だけの .new を導入する方法をご紹介します。

# プログラミング開発で利用できる .new

前述で紹介した一覧の [developer-tools セクション](https://whats.new/shortcuts/#developer-tools)を見ると、プログラミング開発で利用できそうな .new も結構あります。

| .new ドメイン | サイト | 内容 |
|---|---|---|
| [pen.new](https://pen.new/) | CodePen | Prototype your frontend code in CodePen's online development sandbox. |
| [flutter.new](https://flutter.new/) | Flutter | Prototype your app using Flutter's online editor. |
| [gist.new](https://gist.new/) | Github | Open new Github gists. |
| [github.new](https://github.new/), [repo.new](https://repo.new/) | Github | Open new Github repositories. |
| [glitch.new](https://glitch.new/) | Glitch | Code full-stack apps in your browser and collaborate live |
| [script.new](https://script.new/) | Google | AppScript	Create and share new editor functions using Google App Script. |
| [apps.new](https://apps.new/) | Kodular | Start building an app using Kodular's drag and drop development suite. |
| [matlab.new](https://matlab.new/), [mathworks.new](https://mathworks.new/) | MathWorks | Open MATLAB in your browser and start programming. |
| [env.new](https://env.new/), [vso.new](https://vso.new/), [vsonline.new](https://vsonline.new/) | Microsoft | Visual Studio	Create a new Visual Studio codespace for your project. |
| [playground.new](https://playground.new/), [api.new](https://api.new/) | RunKit | Prototype and launch your APIs using RunKit. |
| [sql.new](https://sql.new/) | SeekWell | Write SQL queries for your data in other applications. |
| [deploy.new](https://deploy.new/), [zeit.new](https://zeit.new/) | Vercel | Import your frontend projects to Vercel for preview and deployment. |

（上記は2020年10月現在）

自分でもオリジナルの .new ドメインを作りたい！と思った場合、[get.new](https://get.new/) を見ると取得のための各種情報が書かれています。Google Domains で登録する場合 ￥58,330/年 ですが、その他にも [各種ポリシー](https://www.registry.google/policies/registration/new/#!/)を遵守する必要もあるようです。詳細はそちらを御覧ください。

高額な料金もそうですが、登録者として個人ではなく法人を想定しているのでしょう。

docs.new （Google ドキュメント新規作成）や sheets.new （Google スプレッドシート新規作成）などを便利に使っていると、自分が使っている他のツールでもこういうのが欲しい、自分一人だけでも使いたいと思うことがあります。

自分の PC の /etc/hosts に `example.new 127.0.0.1` といった記載をしてウェブアプリケーションサーバを立てるなどいくつかの方法があると思いますが、一番簡単なのはブラウザの検索エンジン機能を使うことかなと思います。

# 自分一人で使う .new をブラウザの検索エンジン機能を使って設定する

前節の表で GitHub が gist やリポジトリの新規作成に対応していました。gist は置いといて、リポジトリはそんな頻繁にブラウザから新規作成しない、リポジトリの新規作成は hub コマンドなど別の起点があるし…という私のような人も少なくないと思います。むしろ、Issue を作成したいというケースは多そう。

以下 Google Chrome （記事作成時のバージョンは 86）で解説していますが、他のブラウザにも同様の検索エンジン機能があるので、同様の設定を行うことが出来るでしょう。

## Googel Chrome で .new の検索エンジン設定を追加する

ここでは **「あなたの GitHub リポジトリ *YOURNAME/REPOSITORY* に新しい Issue を作成する myissues.new を作成する」**という例で説明します。

- 設定 > 検索エンジン > 検索エンジンの管理へ進む
    - アドレスバーに chrome://settings/searchEngines と入力して Enter を押すと早いです
- 「その他の検索エンジン」の横にある「追加」ボタンを押す
- 検索エンジンの追加の3つの欄にそれぞれ以下を入力する
    - 検索エンジン： 「Add new issues to *YOURNAME/REPOSITORY* 」など自分の好きなもの
    - キーワード： myissues.new
    - URL： `https://github.com/YOURNAME/REPORSITORY/issues/new/choose`
- 「保存」ボタンを押す

これで、アドレスバーに myissues.new と打って Enter ボタンを押すとリポジトリ *YOURNAME/REPOSITORY* に新規 Issue を追加する画面になります。

## キーワードを受け取って新規作成する対象を選択できるようにする

もともと「検索エンジン」機能と言われる理由は、キーワードを受け取って検索URLに問い合わせキーワードを載せることができるからです。設定の URL 中に `%s` というキーワードが書かれると、アドレスバーに入力した追加キーワードを UTF-8 で URL エンコードした内容で `%s` 部分を置き換えた URL に遷移します。

本来多くある .new のアドレスの使い勝手とは違いますが、**引数を与えると新規作成先を切り替える検索エンジン設定を作成することができます**。

検索エンジン設定の追加と保存は前節と同様ですが、検索エンジンの追加の3つの欄を以下のようにすると、**所有者とリポジトリ名を `owner/repo` 形式で指定した上で、そのリポジトリへの新規 Issue 作成画面を表示**します。ポイントは可変キーワード部分の  `%s` です。

- 検索エンジン： 「New issue (w/ owner/repo)」など自分の好きなもの
- キーワード： issues.new
- URL： https://github.com/%s/issues/new/choose

アドレスバーに issues.new と打った後、スペースかタブを打つと、先ほど「検索エンジン」に入れた名前を検索…という内容にアドレスバー表記が変わったあと入力を求められるので、そこに所有者 owenr とリポジトリ repo をスラッシュで区切った `owner/repo` などと入力して Enter を打つと、そのリポジトリの Issue の新規作成画面が開くはずです。

他にも、社内で使っている Redmine やタスク管理システムやバグトラッカーなど、応用は広いでしょう。新規作成画面に GET URL でアクセスできるウェブアプリケーションであれば、この手法が応用できるはずです。

## 補完してほしい？

簡素なスペルなら別として、普通は `owner/repo` 形式は打つには長くてつらいと思います。

記事執筆時点の Chrome 86 では、**一度入力した直近のキーワードは履歴でたどれる**ことを確認していますが、どんな状況でもたどれるか、ある程度以上古いと履歴から削除されるのかは追えていません。**「一度打てば少なくとも履歴に入っている」状態で満足であれば、この機能は一度だけ頑張って入力すれば良い**ことになるでしょう。

「自分が閲覧や活動したリポジトリ全体に対してインクリメンタルサーチをかけて欲しい」といった場合は、Google Chrome であれば拡張機能を書くことが早道かもしれません。

## 注意点

当然ではありますが、個人のブラウザに設定した issues.new は、実際にドメインとして存在しないものなので、他のブラウザ環境や他人が使うことはできません。

また、前出の例で issues.new というキーワードを作成して使っている場合、時を経て本当に issues.new というドメインにて何らかの新規作成機能が提供された場合、ブラウザに設定した検索エンジン設定が優先されることで、そのままではドメインにて提供されている機能の使用が制限されることになるでしょう。

# 参考リンク

- [既定の検索エンジンを設定する - パソコン - Google Chrome ヘルプ](https://support.google.com/chrome/answer/95426?co=GENIE.Platform%3DDesktop&hl=ja)
- [Firefox で検索エンジンを追加または削除する | Firefox ヘルプ](https://support.mozilla.org/ja/kb/add-or-remove-search-engine-firefox)