乐于分享
好东西不私藏

Obsidian插件系列 – Meta Bind使用教程(下)

Obsidian插件系列 – Meta Bind使用教程(下)

插件简介

Meta Bind 插件可以用来制作笔记中的按钮,可参考我的上一篇文章。同时顾名思义, Meta Bind 插件还可以用来绑定元数据。

何谓 “绑定元数据” 呢?

Obsidian 的每篇笔记的开头都带有一个笔记属性区域(也叫 YAML 区),这个区域和你的笔记正文是分开的,而 “绑定元数据” 就是在你的笔记正文区域显示或修改你的笔记属性,这样你就可以将笔记的属性融合到笔记的正文内容中了,你可以对它进行排版,也就不用在笔记开头展示YAML区域了,而是将笔记属性隐藏在边栏的核心插件-属性列表中。

主要用法

在电脑端编辑器中右键,选择 Meta Bind 菜单,可以看到除了添加按钮(Button)和行内按钮(Inline Button)外,还有两个选项,分别是 Input Field 和 View Field 。

Input Field 代表你可以在此处修改你绑定的属性。

View Field 代表你可以对已经有的元数据进行处理后在这里展示。

当你选择创建 Input Field 或 View Field 时,会在你的光标位置生成一个行内代码或代码块,格式如下:

Input Field:

INPUT[InputField类型(参数1(值1),参数2(值2)...):要绑定的属性名]

View Field:

VIEW[包含{属性名}的内容][ViewField类型(参数1(值1),参数2(值2)...):要绑定的属性名]

如果你的属性列表里没有这个属性,那么 Meta Bind 并不会立即创建这个属性,而是会展示一个默认值,且不会在属性列表显示。

插件中的样式有很多,大家可以自行体验使用,这里主要讲解一下Input Field、View Field 分别可以添加哪些常用的参数。更详细的教学可以参考 Meta Bind 官方文档。


Input Field 参数

addLabels

作用:显示滑块和进度条两侧的数值,默认为 true,想要隐去两侧数值,可添加此参数并置为 false

用法:

  • addLabels
  • addLabels(true/false)

可用的Input Field:

  • slider
  • progressBar

例如:

`INPUT[slider(addLabels(false)):数字属性]`

allowOther

作用:给选项类的 Input Field 一个编辑框,允许输入选项外的文字。

用法:

  • allowOther
  • allowOther(true/false)

可用的 Input Field:

  • suggester
  • listSuggester
  • inlineListSuggester

例如:

`INPUT[suggester(option(选项1),option(选项2),option(选项3),allowOther):列表属性]`

class

作用:将创建好的CSS样式应用到这个 Input Field 中,值为CSS文件名。

用法:

  • class(CSS文件名)

可用的 Input Field:

  • • 全部

例如:
.snippets 文件夹中创建了 red-progress-bar.css 文件,
内容为:

.mb-input-type-progressBar.red-progress-bar .mb-progress-bar-progress {
    background
: var(--color-red);
}

并使用class参数:

INPUT[progressBar(class(red-progress-bar)):属性名]

就可以把进度条渲染成红色的。

defaultValue

作用:给属性手动设置一个默认值

用法:

  • defaultValue(默认值)

可用的 Input Field:

  • • 全部

例如:

`INPUT[slider(defaultValue(90)):数字属性]`

limit

作用:给文本类的 Input Field 限制输入字数,给列表类的 Input Field 限制条目数量

用法:

  • limit(数字)

可用的 Input Field:

  • text
  • textArea
  • list
  • inlineList

例如:

INPUT[list(limit(10)):bind_target]

maxValue/minValue

作用:给数字类的 Input Field 设置最大值和最小值

用法:

  • maxValue(数字)
  • minValue(数字)

可用的 Input Field:

  • slider
  • progressBar

例如:

`INPUT[slider(minValue(1), maxValue(7)):数字属性]`

offValue/onValue

作用:给开关设置关闭值和开启值,不设置则为 falsetrue 的复选框属性,设置后则变为文本属性

用法:

  • offValue(文本)
  • onValue(文本)

可用的 Input Field:

  • toggle

例如:

`INPUT[toggle(onValue(开启), offValue(关闭)):开关属性]`

option

作用:给选项类的 Input Field 设置每个选项,可设置多个。

用法:

  • option(选项值)
  • option(选项值, 选项展示的名称)

可用的 Input Field:

  • select
  • multiSelect
  • suggester
  • imageSuggester
  • inlineSelect
  • listSuggester
  • inlineListSuggester
  • imageListSuggester

例如:

`INPUT[select(option(选项1), option(选项2)):选项属性]`
INPUT[select(
    option(1, 1 Star),
    option(2, 2 Stars),
    option(3, 3 Stars),
    option(4, 4 Stars),
    option(5, 5 Stars)
):bind_target]

optionQuery

作用:使用符合查询条件的笔记链接作为选项,可以筛选包含指定标签或者在指定路径内的笔记

用法:

  • optionQuery(查询条件)

可用的 Input Field:

  • suggester
  • imageSuggester
  • listSuggester
  • inlineListSuggester
  • imageListSuggester

例如:

`INPUT[suggester(optionQuery(#标签)):属性名]`

`INPUT[suggester(optionQuery("日记/2026年")):属性名]`

placeholder

作用:在输入框内添加提示性文本

用法:

  • placeholder(文本)

可用的 Input Field:

  • text
  • textArea
  • number
  • list
  • inlineList

例如:

`INPUT[text(placeholder(在这里输入)):属性名]`

stepSize

作用:设置滑块和进度条的步长

用法:

  • stepSize(数字)

可用的 Input Field:

  • slider
  • progressBar

例如:

`INPUT[slider(stepSize(2)):数字属性]`

View Field 参数

class

作用:将创建好的CSS样式应用到这个 Input Field 中,值为CSS文件名,用法参照 Input Field 中的 class 参数

用法:

  • class(CSS文件名)

可用的 View Field:

  • • 全部

hidden

作用:将展示部件隐藏,如果只想计算一个值并且只在 YAML 区域展示,可以使用此参数

用法:

  • hidden
  • hidden(true/false)

可用的 View Field:

  • • 全部

例如:

`VIEW[{a} * {b}][math(hidden):c]`

即:将 a 和 b 相乘的结果给到属性 c ,并且不在笔记正文区域展示,仅显示在 YAML 区域

renderMarkdown

作用:将属性用 markdown 格式渲染

用法:

  • renderMarkdown
  • renderMarkdown(true/false)

可用的 View Field:

  • text

例如:

`VIEW[**{属性名}**][text(renderMarkdown)]`

即:将属性名的内容加粗展示在这里

应用实例

用一篇笔记记录自己的身高体重和 BMI ,可以这样写:

---
身高: 
体重: 
BMI: 
更新日期: 
---

身高:
`INPUT[number(placeholder(输入身高,单位m)):身高]`

体重:
`INPUT[number(placeholder(输入体重,单位kg)):体重]`

BMI:
`VIEW[ {体重}/({身高}*{身高})][math:BMI]`

更新日期:
`INPUT[date:更新日期]`

如果喜欢我的教学,请为我点一个赞吧~想看更多相关内容,欢迎关注我的公众号-玖六拾记