Dataview讓我們將筆記當成資料來查詢,但查詢出來的表格卻無法搜尋、無法複製再利用。今天分享一個使用Dataviewjs來產生表格與Copy按鈕的作法:
- 以Dataviewjs查詢出表格
- 在表格下方產生一個【Copy】按鈕
- 點擊【Copy】按鈕後,將Dataview表格轉換成Markdown表格,並複製到系統剪貼簿
- 到需要插入Markdown表格的位置按Ctrl+V
1. Dataviewjs
```dataviewjs let dataArray = dv.pages("") .where(page => (dv.date("today") - page.file.mday <= dv.duration("1days"))) .sort(page => page.file.mday, "desc") .map(page => [page.file.link, page.type, page.tags, page.file.cday, page.file.mday]); dv.table(["File", "Type", "Tags", "Created", "Modified"], dataArray); const button = dv.el("button", "Copy"); button.onclick = function() { new Notice("Dataview content copy to clipboard!"); let md_text = dv.markdownTable(["File("+dataArray.length+")", "Type", "tags", "Created", "Modified"], dataArray); navigator.clipboard.writeText(md_text); } ```
1.1. 本日建立或修改的筆記
```dataviewjs let dataArray = dv.pages('') .where(page => (dv.date("today") - page.file.mday <= dv.duration("12hours"))) .sort(page => page.file.mday, "desc") .map(page => [page.file.link, page.type, page.file.cday, page.file.mday]); dv.table(["File", "Type", "Created", "Modified"], dataArray); const button = dv.el("button", "Copy"); button.onclick = function() { new Notice("Dataview content copy to clipboard!"); let md_text = dv.markdownTable(["File("+dataArray.length+")", "Type", "Created", "Modified"], dataArray); navigator.clipboard.writeText(md_text); } ```
2. 簡單點的範例
```dataview table type, created from #test ```
dv.pages(來源)
:傳回符合條件的筆記物件陣列page
是傳入的一個筆記物件page.type
是取出YAML區的type欄位page.file.link
是筆記物件的file屬性,file代表作業系統的檔案物件dv.table([標題陣列], 資料陣列)
生成Dataview表格dv.el
建立HTML標籤dv.markdownTable([標題陣列], 資料陣列)
生成Markdown格式的Dataview表格
```dataviewjs let data = dv.pages("#test").map(page => [page.file.link, page.type, page.created]); dv.table(["Link", "Type", "Created"], data); let btn = dv.el("button", "Copy table"); btn.onclick = function() { new Notice("COPY!") let md_text = dv.markdownTable(["File("+data.length+")", "Type", "Created"], data); navigator.clipboard.writeText(md_text); } ```
| File(7) | Type | Created | | ----------------------------------------------------- | ---- | ------------------- | | [[test.md\|test]] | 測試筆記 | 2023-05-03 08:51:26 | | [[test-columns.md\|test-columns]] | 專案筆記 | 2022-05-03 20:57:16 | | [[test-Admonitions.md\|test-Admonitions]] | 專案筆記 | 2022-03-31 20:15:33 | | [[300-R興趣/300-01-筆記方法/康乃爾筆記法 Notes.md\|康乃爾筆記法 Notes]] | 彙總筆記 | 2022-03-26 16:15:11 | | [[300-R興趣/300-01-筆記方法/PARA 說文解字.md\|PARA 說文解字]] | 原子筆記 | 2022-03-26 16:18:50 | | [[042-Chat/Chats/test-chat.md\|test-chat]] | 專案筆記 | 2023-03-07 10:48:33 | | [[000-Index/!!! StartHere !!!.md\|!!! StartHere !!!]] | 專案筆記 | 2022-03-26 16:21:32 |
3. 相關鏈接
4. 教學影片
##
您可能也會有興趣的類似文章
- Obs131|Obsidian使用Dataviewjs動態查詢的嘗試 (0則留言, 2023/05/27)
- Obs129|Obsidian除了CSS片段以外的CSS進階用法與兩個CSS外掛 (0則留言, 2023/05/14)
- Obs128|Obsidian Dataview進度條與YAML欄位快速輸入的方法 (0則留言, 2023/05/11)
- Obs126|Obsidian 2023/04 7個新外掛介紹與評析 (0則留言, 2023/04/29)
- Obs127|用Templater Hotkeys簡化Obsidian自動化腳本,詳解4個腳本範例 (0則留言, 2023/05/05)
- [Obs#88] 綜合練習:快速設定的6種方法─使用8個Obsidian外掛 (0則留言, 2022/05/21)
- [Obs#42] Buttons外掛 0.4.5 新功能 (0則留言, 2021/05/19)
- Obsidian 1.0新手教學—打造個人知識管理利器,專屬的第二大腦 (2022年) (4則留言, 2022/10/22)
- Obs#117 | Obsidian表格攻略與表格就地編輯外掛:Table Enhancer (0則留言, 2023/03/19)
- [Obs#58] 快速開啟常用筆記的方法 (0則留言, 2021/10/23)
- [Obs#56] 快速新增靈感/閃念筆記(Fleeting Note)的3種方法 (0則留言, 2021/10/10)
- Obs#118 | Obsidian超棒的圖形處理 Awesome Image (4則留言, 2023/03/22)
- [Obs#105] Obsidian外掛 Local REST API 提供外部整合服務 (0則留言, 2022/11/06)
- [Obs#69] 由豆瓣建立Minimal樣式主題的閱讀書單卡片 (0則留言, 2022/02/11)
- Obs#120 | Chronology:筆記年表一覽無遺 (0則留言, 2023/03/26)