Obsidian目前(v0.12.19)在YAML區輸入標籤時,無法以 #標籤 的格式出現,不使用 #,就不會自動顯示標籤列表供使用者選取,用了 # 又會造成語法錯誤。我彙總了3種解決方法。
# 人工操作
仍然輸入 # 以顯示標籤彈窗,選取完成後再刪除 # ,或加入雙號號:
"#標籤"
無法用 # 的原因
# 井字號在YAML語法是註解,因此加了 # 會造成「INVALID YAML」的錯誤。
- 使用linter外掛
- 撰寫QuickAdd巨集replace_tags.js:限用一行式陣列寫法
- 撰寫QuickAdd巨集select_tags.js:彈出標籤視窗供選取
1. Linter外掛
安裝並啟用Linter,勾選【Format Tags in YAML】。
技巧
YAML區不能用陣列格式,也不能用列表格式。
無法轉換
tags: [ #tag1, #tag2 ]
或
tags:
- #tag1
- #tag2
正常轉換
tags: #tag1 #tag2
或
tags: #tag1, #tag2
2. QuickAdd腳本刪除所有 #
原始碼
module.exports = async function get_tags(params) {
const {app, quickAddApi: {suggester}} = params;
const activeLeaf = app.workspace.activeLeaf;
const editor = activeLeaf.view.editor;
const lineNumber = editor.getCursor().line;
let content = editor.getLine(lineNumber);
content = content.replace(/#/g, "");
editor.setLine(lineNumber, content);
}
設定步驟
- 在儲存庫裡以文字編輯器建立replace_tags.js
- 設定→QuickAdd選項→【Manage Macros】
- 輸入巨集名稱:macro_replace_tags
- 【Add macro】→User Script選用replace_tags.js
- 設定→QuickAdd選項→輸入「Macro: Replace Tags」
- 選用【Macro】後點擊【Add Choice】
- Configure 「Macro: Replace Tags」:選用巨集macro_replac_tags
使用步驟
- 在YAML區tags右側輸入 # 選取標籤
- 標籤皆選用完畢後執行上述設定的QuickAdd巨集
- 巨集將刪除tags該行所有的 #
3. 彈出標籤視窗以選取標籤
module.exports = async function select_tags(params) {
const {app, quickAddApi: {suggester}} = params;
const allTags = Object.keys(app.metadataCache.getTags());
let tag = await suggester(allTags, allTags);
if (!tag) return;
tag = tag.substring(1); // skip the hash symbol
return tag;
}
設定步驟
- 在儲存庫裡以文字編輯器建立select_tags.js
- 設定→QuickAdd選項→Manage Macros
- 輸入巨集名稱:macro_select_tags
- Add macro,User Script選用select_tags.js
- 設定→QuickAdd選項→輸入「Capture: Select Tags」
- 選用【Capture】後點擊【Add Choice】
- 點擊以加入命令面板
- Configure 「Capture: Select Tags」
- 啟用Capture to active file
- 啟用Capture format並輸入內容:{{MACRO:macro_select_tags}}
- 替Capture: Select Tags設定一個快捷鍵
使用步驟
在YAML區tags右側點擊設定好的快捷鍵,在彈出視窗裡選取標籤
相關連結
- obsidian-linter外掛
- replace_tags.js: https://gist.github.com/emisjerry/9dcd3dfd9a337530731f22253d43e6b7
- select_tags.js: https://gist.github.com/emisjerry/287590ee7a23930f0e968a4903a3f3d0
教學影片
##您可能也會有興趣的類似文章
- [Obs#51] QuickAdd全攻略(2):腳本撰寫與巨集使用要點 (0則留言, 2021/09/18)
- [Obs#50] QuickAdd全攻略(一):改變工作流程的超強外掛 (0則留言, 2021/09/12)
- [Obs#18] v0.9.16 YAML增強功能: tags與aliases (0則留言, 2020/11/20)
- [Obs#12] Obsidian v0.8.4~v0.8.9的新增功能 (0則留言, 2020/09/06)
- [Obs#45] 軟體工程師必備的6個Obsidian外掛 (0則留言, 2021/08/13)
- [Obs#43] 美化內部連結外觀:使用Supercharged Links外掛,並增加連結的功能選項 (0則留言, 2021/06/04)
- [Obs#55] 建立新筆記的模板設定-Calendar, Templater與QuickAdd (0則留言, 2021/10/09)
- [Obs#56] 快速新增靈感/閃念筆記(Fleeting Note)的3種方法 (0則留言, 2021/10/10)
- [OBS#32] templater: 無限擴充可能的第三方樣板外掛 (0則留言, 2021/04/10)
- [Obs#27] Timelines:時間軸外掛 (0則留言, 2021/03/12)
- [Obs#21] HTML/Word表格轉換成Markdown表格的方法 (1則留言, 2020/11/28)
- [Obs#35] Buttons外掛開啟筆記自動化操作契機 (0則留言, 2021/04/23)
- [Obs#38] 編輯區顯示圖片的外掛 (0則留言, 2021/05/07)
- [Obs#42] Buttons外掛 0.4.5 新功能 (0則留言, 2021/05/19)
- [Obs#31] 美化提示方塊的外掛:Admonitions和方便選用的AutoHotkey腳本 (0則留言, 2021/04/05)