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】。
title: 技巧
YAML区不能用阵列格式,也不能用列表格式。🐞无法转换
tags: [ #tag1, #tag2 ]或
tags:
- #tag1
- #tag2✅ 正常转换
tags: #tag1 #tag2或
tags: #tag1, #tag22. QuickAdd脚本删除所有#
原始码
module.exports = async function replace_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
教学視頻
- Bili Bili影片:https://www.bilibili.com/video/BV1Qv411u7HC/
##
