ぼくの Obsidian

## はじめに

### Obsidian とは？

マークダウン形式でノートをとることができ、それによりパーソナルナレッジベースを構築することができるツールである。
豊富なプラグインにより、機能をどんどん拡張することができる。

このツールの特徴として、**作成したノート間をリンクで次々に繋いでいくことにより、知識のネットワーク化を図ることができる**というのがある。それによりアイディアの捻出やより深い思考へと繋げていくことを理念に掲げられている。

### なぜこれを使おうと思ったか？

実は上述した Obsidian の特徴である、「知識のネットワーク化」としてこのツールを選んだわけではなかった。単にタスク管理ツールとしていいものがないかを探しているとき、たまたま見つけたのがこのツールであった。タスク管理に関するプラグインも揃っており、以下のような点で自分のニーズにマッチしていたことから利用に至った。

- ローカルで作動するため、アプリの動作が軽快そのもの。
- カスタマイズが自由
- 複数デバイス間での利用が可能 [^1]
- 全データ（ノート）をマークダウンファイル (.md) として記述・管理される

[^1]: 導入検討時は特に PC とスマートフォンとの同時併用を検討していた。1 ヶ月ほど利用してみたものの、結局スマホ版はあまり使用する機会がなく、現在は PC 間のみの同期で落ち着いている。また、スマホとの同期を行うには Sync という課金サービスを利用する方法が推奨される。

## Disclaimer

- 前述の通り、ノート間のリンクからネットワーク構築、知識をビルドしていく」という Obsidian の強みを活かした使用方法からは外れる
	- 「タスク管理ツール」としての使用方法の紹介となる
- まだまだ勉強中の身 & 過去にやった設定方法を正確に覚えておらずで、間違い・適切でない記載等紛れ込んでいる可能性があるのでご了承いただきたい。

## 前提・環境

- 実行環境: `MacOS Sonoma 14.4 / Apple M1 Pro`
- Obsidian バージョン: `Version 1.6.5 (Installer 1.5.3)`

## 基本的な概要、使い方

### 導入方法（ダウンロード、インストール etc）

#### ダウンロード

https://obsidian.md/download

#### インストール

ダウンロードしたバイナリを解凍

### 見た目 (Theme) 変更

まずは見た目が大事ということで、テーマを変えてみる。

1. 「**Obsidian** > **Preferences** 」 または `⌘ + ,` で設定画面を開く。
2. **Appearance** > **Themes** > **Manage** ボタンをクリックする

    ![スクリーンショット 2024-07-17 20.52.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/3b361efd-f466-f180-bb53-477c3ad91682.png)


3. きっとあなたにピッタリのテーマがあるだろう

    ![スクリーンショット 2024-07-17 20.57.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/df3004c3-3a0c-4a7f-ac79-d3f13b01d8e1.png)


*※このスクショでは、すでに「GitHub Theme」が適用されている*

### プラグイン

プラグインには、`Core plugins` と `Community plugins` の 2 種類ある。
前者は Obsidian に元々入っているプラグインであり、後者はユーザーが任意でインストールするものだ。

特に Community plugins の方を検索して、いろいろ自分好みのものを探すのが楽しい。

![スクリーンショット 2024-07-17 21.18.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/6b87c357-90e4-0cfe-8071-da4692f3ec0c.png)


次のセクションでおすすめプラグインを紹介したい。

## お役立ちプラグイン

Obsidian はプラグインによって機能を拡充していくことが可能で、さらに自らもプラグインを開発することができる。そのコミュニティは活発である。
以下に、使ってみたプラグインでよかったものを挙げる。

### 1. Kanban

最も使用頻度が高く、**このプラグインのために Obsidian を利用しているといっても過言ではない。**

![スクリーンショット 2024-07-17 21.23.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/bc953d15-1009-2334-6da1-ea0fe986ebed.png)


 いわゆるカンバンボードを作成・利用できるようになるプラグインである。
 なかでも気に入っている機能を紹介する。
- 日付（タスク期限）の色分け
- タグの色分け
- 検索機能
- カンバン上に作成したカードから、ノートを作成可能

#### 日付（タスク期限）の色分け

![スクリーンショット 2024-07-17 21.29.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/07171a35-f5c4-8883-456c-1788b295c92d.png)


カードに付与したタスク期限に応じて、日付ラベルに着色可能である。
例えば、期限を過ぎたものは赤色、今日が期限日のものは黄色、期限日まで 1 週間を切ったものは緑色、それ以外はグレー、みたいな感じにしたりできる。

#### タグの色分け

![スクリーンショット 2024-07-17 21.32.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/9ac9ad5a-5799-f940-ad52-d49ed644fd33.png)


カードに付与したタグに応じて、タグラベルに着色可能である。
大事なタグやホットなタグには特色のある色をアサインすることで、カンバン上で目立ちやすくする。

#### 検索機能

![スクリーンショット 2024-07-17 21.34.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/a1986103-acd0-60f3-ebe6-6b48f3954f7a.png)


カンバンビューにフォーカスが当たった状態で、`⌘ + F` で検索ウィンドウを表示し、キーワードを入力することで検索できる。ヒットしたカード以外にグレースケールがかかり、探し物がしやすくなる。キーワードには単なる文字列を指定することもできるし、`#タグ` を指定することもできる。

#### カンバン上に作成したカードから、ノートを作成可能

![スクリーンショット 2024-07-17 21.40.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/df2a1f1c-4dc2-b637-3ae2-c310b908a60c.png)


カードを作成した際、そのカードだけで用が済むようなシンプルなタスクならそれで OK だが、少し複雑な説明などを記述したい場合もある。そんな時は、対象のカードの **ミートボールメニュー** > **New note from card** から新しいノートを作成し、リンクが自動的に貼られる。

### 2. Tasks

カンバン管理下ではないが、個別のやるべきこと（タスク）に対してチェックボックスを付与し、進捗を管理できるプラグインである。

- Edit mode

    ![スクリーンショット 2024-07-17 21.46.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/644151fc-cf3f-5b7c-68df-fc5a9ac48900.png)


- Source mode
    ![スクリーンショット 2024-07-17 21.47.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/52e8c6e2-821a-3e2c-005f-b0eb753f1efc.png)


このプラグインが入った状態でノートの任意の場所で `- [ ]` を入力すると、空のチェックボックスが表示され、期限や完了日、さらに反復の設定までも行える。私は植物の水やりを度々忘れてしまうので、このプラグインによって今日が水やりであることを認識することができる。

### 3. Linter

マークダウンで記述する上で、フォーマットが自動で行われるのは非常に重要であると考えている。
このプラグインでは、マークダウンのフォーマットに関する細かい設定を行うことができる。

### 4. Daily notes / Calendar

- Daily notes(Core)
	- 日付のついたデイリーノートを作成することができる。
	- `New file location` でデイリーノートを作成するフォルダを指定する
	- `Template file location` で、デイリーノート作成時に使用するテンプレートの置き場を指定する

        ![スクリーンショット 2024-07-17 21.12.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/6f82905c-6d0f-0591-c00b-b29d1cfd65df.png)


- Calendar(Community)
	- カレンダービューを表示できる
	- Core plugin の Daily notes と併用することで、カレンダーのとある日付をクリックすることでノートを作成することができる

        ![スクリーンショット 2024-07-17 21.14.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/b74cd924-57fe-7009-e2e4-204d2d1db451.png)

### 5. File recovery

うっかりファイルを削除してしまった時に重宝する、ファイル復元のためのプラグインである。
Core プラグインであり、デフォルトで有効になっている。
仕組みとしては、ある間隔（default: 5分）でスナップショットを保持しており、任意のタイミングでその内容を取り出すことができる。

- 設定画面 > Core plugins より「File recovery」を選択し、スナップショット間隔(Snapshot interval)や履歴保存期間（History length: default=7日）を設定し、View をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/e5b90938-f091-3dbd-7d99-fd3ddea79269.png)

- 復元したいファイルを左上の検索窓に入力すると、スナップショットが（いくつか）表示されるので、復元したいタイミングで作成されたものを選び、右側で確認 & Copy でクリップボードにコピーする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/c3bb16d1-672b-de40-294e-c6ce9ff5212e.png)

- あとは、通常通り Note を新規作成し、貼り付けて復元完了である



## Hotkeys

どのツールでもそうだが、よく使う操作をショートカットとして利用できるようにすると格段に作業が捗る。
以下では、私が設定しているいくつかのおすすめショートカットを紹介する。

`⌘ ,` > **Hotkeys** で設定画面を開いて、以下の左側の Hotkey 名で検索し、`Blank` であれば「`+`」をクリックして新たにショートカットを登録する。

- `Toggle pin`: 開いているビュー（ノート、カンバン etc）をピンする。ピンすることで、リンク先にジャンプする際に、新しいタブが作成される。
- `Toggle between Kanban and markdown mode`(Kanban): カンバンビューにおいて、ビューモードとソースモードを切り替える。カンバンも元を辿れば単なるマークダウンファイルであり、各リストにタスクが属している様子が見て取れる。また、アーカイブしたタスクはビューからは確認できないが、**ソースモードから確認可能となっている。**
- `Toggle Live Preview/Source mode`: Edit モードと Source モードを切り替える
- `Toggle reading view`: reading モードに切り替える。reading モード中は、編集不可となる。
- `Search & replace in current file`: vault 全体から検索を行う。
- `Go to next tab`/`Go to previous tab`: 右隣/左隣のタブに遷移する

## 階層タグ

Obsidian は階層タグによるフィルタリングの機能が強力だ。
以下に示すようなロジックでフィルタリングされる。

e.g. 1 = `#prj/dev` と 2 = `#article/dev` と 3 = `#prj/tool` と 4 = `#dev` という 4 種類のタグがあった時

- `#prj/dev` でフィルター→ `1` がヒット(階層含めたタグの完全マッチによる単独ヒット)
- `#dev` でフィルター→ `4` がヒット(単独タグの完全マッチによる単独ヒット)
- `#prj` でフィルター→ `1,3` がヒット(最上位層のマッチによる複数ヒット)
- `#tool` でフィルター→ ヒットなし
- `#article` でフィルター→ `2` がヒット(最上位層のマッチによる単独ヒット)

これを使い分けることで、**同じキーワードでもコンテキストによって探したいものを区別することができる。**

## Google Drive によるデバイス間同期

Obsidian では、公式課金サービスとして `Sync` というものが提供されており、これを利用すると気軽に複数のコンピュータ、スマホ、タブレット etc 間でのデータの同期が可能となる。しかし、月額数ドルかかるため、円安の影響も相まってなかなか出費が辛い。調べたところ、無料で利用可能なクラウドストレージを利用した同期も可能とのことなので、現在は Google Drive を利用してデバイス間同期を実現している。

### やり方

1. Google Drive App をインストールする (https://www.google.com/drive/download/)
2. Google Drive 上の任意の場所に、ローカルコンピュータの vault ディレクトリを同期させる
    ![スクリーンショット 2024-07-17 22.26.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671630/7b5d53a2-1781-596f-f83f-af27d56fa994.png)

4. Obsidian を利用したい別の端末でも Obsidian アプリおよび Google Drive App をインストールする
5. 2 で Google Drive に同期したフォルダを 3 の端末に同期する
6. Obsidian を起動し、**Open folder as vault** > Open > 4 のフォルダを指定する

### 注意点

- Google Drive を利用してデバイス間同期を行っていると、Google Drive アプリのアイコンがメニューバーに表示された状態となり、Obsidian 上でファイルの保存を行うとそのアプリがクルクルと回り出す。仮に自宅用 PC と会社用 PC で同期を行っている場合、web 会議で自分の画面を共有していると「あ！この人ウチの会社で許可されていないアプリ（しかもクラウドストレージというかなりきわモン）使ってる！通報しよ！」となりかねないので注意が必要である。

## 終わりに

元々マークダウン大好き人間だったため、Sublime Text でマークダウン編集環境を整備してノートを取っていたが、Obsidian に切り替えて本当にストレスなく作業ができるようになり、タスクの管理もまだまだ改善の余地有りではあるが楽しみつつ進められている。Obsidian では、「ノートをどこに置くか？」というフォルダの階層構造を気にしなくて良く [^2]、検索時はタグで一発である。
今後もしばらくは使い続けることになりそうである。

[^2]: 「どんなタグをなんのノートにつけているかを覚えていなくてはならない」という反論がありそうだが、これは従来の「フォルダ階層によるノートの格納」においても言えることで、どんなノートをどこに置いておくのかを覚えておく必要がある。つまりどこかでは人的に記憶しておく部分というのは排除できなくて、何を許容・拒絶するかの問題である。