[Obs#115]用Obsidian建立萬用的收藏資料庫(Collections);善用Minimal Theme與Dataview

除了筆記功能之外,Obsidian也可協助我們建立各種各樣的收藏資料庫,諸如個人圖書館、電影資料庫、音樂資料庫、各式圖鑑等,都可以透過Obsidian的自由書寫形而迅速的建立,再用Dataview執行各種查詢。

為什麼不用專用的應用程式或網站(例如Kavita)來建立資料呢?因為使用Obsidian的話,可以下列幾個好處:

  1. 資料欄位可以依自己需求自行建立
  2. 輸出格式雖然無法隨心所欲的呈現,但需要顯示的內容可以自行決定
  3. 依自己的需要執行各種查詢
  4. 更方便的記錄心得與備忘

這次將使用最少的外掛,由建立新的儲存庫開始,逐一將建立資料、整理資訊到建立查詢等步驟做詳細的解說,希望能給大家可以看到Obsidian的另一種使用範例。

由於臨近二二八,又逢《悲情城市》4K數位版重映,我就用侯孝賢導演的電影來做完整的展示。
gh|700

1. 工具

  1. Ditto:剪貼簿工具,複製資料時使用(參考:[Windows] 文抄公的必備良方, 超方便剪貼簿工具:Ditto)
  2. ConvertZZ:簡體轉繁體時使用(參考:繁簡互轉工具:ConvertZZ,自訂常用電腦詞彙)

2. 儲存庫建立步驟

2.1. 建立儲存庫

  1. 用檔案總管建立 collections 資料夾
  2. 用Obsidian開啟 collections 資料夾形成儲存庫(valult)
  3. 【設定】→【編輯器】→關閉【縮減行寬】
  4. 安裝佈景主題Minimal:【Settings】→【Apperance】→【Manage】,搜尋Minimal後→【Install and use】
  5. 【Settings】→【Community Plugins】→【Turn on community plugins】
  6. 安裝需要的外掛→【Browse】→【Install】→【Enable】
    1. Style Settings
    2. Minimal Theme Settings
    3. From Template
      1. 設定模板資料夾為 Templates
      2. Replace selection選為 【Never】
    4. Dataview
    5. Regex Find/Replace (非必要)
    6. Hover Editor (非必要)
    7. Obsidian Image Toolkit (非必要)
  7. 建立資料夾 Artists、Movies、Templates、Queries

2.2. 建立 Artist 模板

  1. 在Templates資料夾建立 From-Template-Artist,內容如下:
---
template-output: Artists
tags: artist
---
# {{title}}

![|300]({{照片}})

- 姓名:: {{姓名}}
- 照片:: {{照片}} 
- 性別:: {{性別}} 
- 星座:: {{星座}} 
- 出生日期:: {{出生日期}}
- 出生地:: {{出生地}}
- 職業:: {{職業}}
- 更多外文名:: {{更多外文名}}
- 家庭成員:: {{家庭成員}}
- imdb編號:: [{{imdb}}](https://www.imdb.com/name/{{imdb}})
  1. 測試From-Template-Artist
    1. Ctrl+P執行From Template: Re-index From Templates
    2. Ctrl+P執行From-Template-Artist
      1. From Template的title欄位有Bug,中文不會儲存
  2. 為了方便操作,分別將兩個模板綁定快捷鍵:Alt+AAlt+M

2.3. 建立 Movie 模板

  1. 在Templates資料夾建立 From-Template-Movie,內容如下:
---
template-output: Movies
tags: movie
title: {{title}}
---
# {{title}}

![|300]({{照片}})

- 導演: {{導演}}
- 編劇: {{編劇}}
- 主演: {{主演}}
- 型別: {{型別}}
- 製片國家/地區: {{製片國家/地區}}
- 語言: {{語言}}
- 上映日期: {{上映日期}}
- 片長: {{片長}}
- 又名: {{又名}}
- IMDb: [{{IMDb}}](https://www.imdb.com/title/{{IMDb}})
  1. 測試From-Template-Movie
    1. Ctrl+P執行From Template: Re-index From Templates
    2. Ctrl+P執行From-Template-Movie
      1. From Template的title欄位有Bug,中文不會儲存資料

3. 資料輸入

  1. 用命令面板執行 From-Template-Artist (或按Alt+A),逐一輸入各欄位
  2. 用命令面板執行 From-Template-Movie (或按Alt+M),逐一輸入各欄位。將要收藏的電影逐一建檔。

[!REF] 建議

  1. 可以用複製、貼上的操作加快資料輸入的速度。如果有程式設計的能力的話,不妨寫個讀取網頁、萃取資料而寫出檔案的程式,可以更輕鬆的完成資料的建檔
  2. 由於來源是簡體,可透過ConvertZZ的剪貼簿轉換功能直接轉換成繁體再貼上

4. 建立查詢

4.1. 找出導演的所有電影

  1. 開啟「侯孝賢」筆記
  2. 在最下面插入下列Dataview程式碼
```dataview
table 上映日期, IMDb, "![](" + 照片 + ")" as 照片
from #movie
where 導演="侯孝賢"
sort 上映日期
```

gh|700

  1. 在YAML區加上cssClasses設定將Dataview改成卡片格式
---
cssClasses: cards, cards-align-bottom, cards-cols-4
---

gh|700

  1. 用DataviewJs產生電影名稱清單
```dataviewjs
let movies = dv.pages("#movie").filter(movie => movie.導演=="侯孝賢")
  .sort(movie=> movie.上映日期);
let aTitles = new Array()
for (let movie of movies) {
  let title = `[${movie.title}](${movie.IMDb})`;
  aTitles.push(title);
}
dv.paragraph(aTitles.join(" | "));
```

gh|700

  1. 使用Dataview表達式顯示電影數目
`$=dv.pages('#movie').filter(movie=>movie.導演=="侯孝賢").length`

4.2. 建立查詢筆記:列出所有藝人

  1. 在Queries資料夾建立查詢筆記
  2. 輸入查詢用的Dataview
```dataview
table 姓名, "![|200](" + 照片 + ")" as 照片
from #artist and -"Templates"
```

4.3. 建立查詢筆記:依類型列出電影

  1. 在Queries資料夾建立查詢筆記
  2. 輸入查詢用的Dataview
## 劇情片
```dataview
table "![|200](" + 照片 + ")" as 照片
from #movie and -"Templates"
where contains(型別, "劇情")
```
## 愛情片
```dataview
table "![|200](" + 照片 + ")" as 照片
from #movie and -"Templates"
where contains(型別, "愛情")
```

5. 相關鏈接

💡GitHub儲存庫網址: https://codeload.github.com/emisjerry/obsidian-collections

6. 教學影片

##

您可能也會有興趣的類似文章

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *