ローカルで管理する自分だけのサイト管理アプリ『リンクリスト』作りました

## はじめに

インターネット通信を経由しない、ローカル環境で管理できるサイト管理アプリ『**リンクリスト**』を作りました。
インストール不要、Webブラウザで開くだけで利用できます。
Webサーバーも不要です。
サイトのリンクを管理するアプリやサービスはありますが、自分好みのものが欲しくなり作りました。

## つくったもの

サイト管理アプリ『**リンクリスト**』のデモ動画です。検索や絞り込みで表示するサイト情報を絞り込みしている動画になります。

<iframe width="560" height="315" src="https://www.youtube.com/embed/gzVICp4xvZs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

## ソースコード

ソースコードを github に格納しました。

https://github.com/zgw426/HTML-JavaScript-LinkLists

ソースコードを全てダウンロードし、`index.html` をブラウザで開くと使用できます。

## 使い方

リンクリストの使い方を紹介します。

### 1.名称

リンクリストの各部名称を紹介します。
リンクリストには、`検索欄`,`大項目欄`,`カテゴリ欄`,`サイト情報欄`の4つの欄があります。

![00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/edb5c171-f64a-1e39-b19f-e6986662400d.png)

### 2.サイト情報欄

サイト情報欄には、サイトのリンクとそのリンクに関する情報を表示します。サイト情報は、パラメータ `kana` の情報をもとに50音順にソートして表示します。

![サイト情報欄](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/00ac8243-afe4-be1a-1416-e8e5fa34cf4b.png)

サイト情報欄に表示する情報は、`links_XX.son.js`ファイルにJSON形式で記載されています。

![サイト情報欄_パラメータ説明.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/b99252db-955c-13d6-f553-2e88bb16d86e.png)

JSON形式の情報にあるパラメータ`note`の情報は、リンクリストでは複数行のテキスト情報として表示されます。この情報は、ドラッグで枠を拡大することで表示される情報を増やせます。これにより簡易的にIDやパスワードなどの表示/非表示ができます。そのため、オンライン会議で画面共有をした際に、IDやパスワードなど隠したい情報を非表示にできます。

![サイト情報欄_ドラッグで拡大](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/42925764-0e43-96b6-a049-85b9dff18067.png)

サイト情報欄には`links_XX.son.js`ファイルに登録された全てのサイト情報が表示されます。そのため、表示される情報が多く、目当てのサイトが見つけにくい場合があります。そのような場合は、次から説明する『キーワード検索』や『絞り込み』を使い、サイト情報欄に表示する情報を減らし、探しやすくします。

### 3.キーワード検索

検索キーを入力し検索します。リンクリストに登録したサイトに関するほぼ全ての情報が検索範囲になります。

![キーワード検索](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/e8bfe9d2-fffb-52d7-ce4a-6c912326d4d2.png)

以下はキーワード[ワシントン]で検索した結果です。`サイト情報欄` にはキーワードを含むサイト情報のみが表示されます。カテゴリ欄には、キーワードを含むサイト情報のカテゴリ情報のみ表示されます。

![キーワード検索_ワシントン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/68ee195e-1938-c247-e9b0-3d004e27613c.png)

全角or半角の空白で複数の検索キーを入力すると、それら複数のキーでAND検索します。ローマ字は大文字小文字を区別しません。以下はキーワード[YAHOO][メモ]の2つの検索キーでAND検索した結果です。

![キーワード検索_YAHOO-メモ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/a47d8d28-5900-df33-c102-ec386e72cab7.png)

### 4.links_XX.json.js単位で絞り込み

サイトの情報は、`links_01.json.js`,`links_02.json.js`,`links_03.json.js`にあり、`.js`ファイルごとに読み込み範囲を絞り込みできます。

![jsファイル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/112b9ece-3755-35a3-1e53-2de9ab4dbcbd.png)

以下は、ローカルファイル(`links_03.json.js`)のみ読み込んだ結果です。`カテゴリ欄`と`サイト情報欄`には`links_03.json.js`に登録された情報のみ表示されます。

![0jsファイル絞りこみ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/8762eb70-a2d7-9f13-6f53-3fbe65eb9ff6.png)

### 5.カテゴリで絞り込み

カテゴリ欄に登録されたキーワードで絞り込みができます。
以下は[ニュース] を選択した結果です。

![カテゴリ絞り込み](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/10cb9772-1110-c63d-d05d-56c756e45d22.png)

カテゴリ欄もAND検索です。複数のキーワードを選択すると更に絞りこみができます。以下は[ニュース]と[マイクロソフト]の2つを選択した結果です。

![カテゴリ絞り込み_ニュース-マイクロソフト](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/99871964-2aca-f6ba-51e9-b09b7d10a80a.png)

### 6.キーワード検索とカテゴリで絞り込み

キーワード検索とカテゴリを組み合わせての絞り込みも可能です。

---

## 参考

サイトリンクを作るにあたり、以下を使用にしました。

https://qiita.com/suo-takefumi/items/be1cbc19f1d105c57bce

## さいごに

サイト管理アプリ『リンクリスト』は、使用しながら改善し、ようやく納得する形になりました。しかし、よく使う検索キーワードやカテゴリを表示する機能を実装出来てないので、思いついたら実装しようと思います。