Obsidian Basesで分かったことをメモ。
## Obsidian Basesってなに?
いわゆる公式Dataview機能。ただし、機能はDataviewに劣る。`hoge.bases`ファイルで独立したファイルを作ることもできるし、`"![[hoge.base]]`で埋め込むことも可能。もちろん、Dataviewみたいにコードブロックに直接書いて表示させるのもできます。
> [!info]
> 今回はコードブロックで直接書くタイプの書き方(一部)で書いています。
> 全体の書き方は見出し「[[Obsidian Basesの基本を押さえる#最小構成のBases]]]を参照してください。
### Obsidian Basesで難しそうなこと
1. Todoリストの抽出
2. 指定したページ「からの」リンクを探す
3. Obsidian Publishでの表示
1と2はDataviewで、3は実装を待つしかない。
## 最低限押さえておきたい記法
### filter
表示したい項目を絞る項目。主にフォルダー名やタグ名・日付・リンクの有無などが該当。今のところTodoに関するものはないっぽい。残念。
#### 例
##### フォルダーの場合
`03_Zettelkasten`フォルダーから探す。
```yaml
filters:
and:
- inFolder(file.file, "03_Zettelkasten")
```
##### タグの場合
`西洋占星術`のタグが付いているファイルを探す。
```yaml
filters:
and:
- taggedWith(file.file, "西洋占星術")
```
##### リンクの場合
```yaml
filters:
and:
- linksTo(file.file,"Home")
```
`Home`のページ「に」リンクを貼っているファイルを抽出。いわゆるバックリンク。
##### 複合技
プロパティー`update`の日付を参照。10日前~180日後かつ`02_Blog`もしくは`03_Zettelkasten`フォルダーから探す。
```yaml
filters:
and:
- dateOnOrAfter(property.update, dateModify(now(), "-180day"))
- dateOnOrBefore(property.update, dateModify(now(), "-10day"))
- or:
- inFolder(file.file, "02_Blog")
- inFolder(file.file, "03_Zettelkasten")
```
今回の場合、「最初ANDで全体を囲った」後に、「ORでフォルダーを検索する」形式をとりました。
### order
```yaml
order:
- file.name
- update
```
カラムに表示させたいやつをここに書く。
### sort
```yaml
sort:
- column: update
direction: DESC
```
`colomn`にソートしたいカラムを、directionに昇順(ASC)・降順(DESC)で並べる
### 最小構成のBases
```yaml
views:
- type: table
name: Table
filters:
and:
- inFolder(file.file, "03_Zettelkasten")
order:
- file.name
- update
sort:
- column: update
direction: DESC
```
コードブロックの先頭に`bases`ってつけてください。(Obsidian Publishの仕様上、うまく書けない)
- `03_Zettelkasten`のフォルダーを参照
- ファイル名とフロントマター`update`を表示
- フロントマター`update`を降順で並べる
## その他小ネタ
他にできそうなことは下記リンクをたどってみて!!!(投げやり)
- [[Obsidian Bases]]
- [Introduction to Bases - Obsidian Help](https://help.obsidian.md/bases)
- [Bases syntax - Obsidian Help](https://help.obsidian.md/bases/syntax)
- [Functions - Obsidian Help](https://help.obsidian.md/bases/functions)
## 書き方わかんねーよ
上記の公式サイトのリンクをChatGPTとかClaudeと相談しながら書けばいけるかもしれない。(なお、ハルシネーション)
まあ、彼らに「日本語で翻訳して」っていうだけでもだいぶ違うので、頑張って!!!
## リンク
- [[Obsidian Bases]]
- [Introduction to Bases - Obsidian Help](https://help.obsidian.md/bases)
- [Bases syntax - Obsidian Help](https://help.obsidian.md/bases/syntax)
- [Functions - Obsidian Help](https://help.obsidian.md/bases/functions)