humoumou2 downloadsPersistent {{:...}} and {{placeholder:...}} placeholders for Obsidian templates, notes, and text properties.
给 Obsidian / Templater 模板增加持久化占位符。模板生成后,占位符仍保留在 Markdown 中,直到用户真正填写。
为了中文输入更方便,推荐使用短语法:
# {{:请输入接口名称}}
负责人:{{:请输入负责人}}
请求路径:{{:/api/user/create}}
## 功能说明
{{:请填写功能说明}}
也兼容原来的完整写法:
{{placeholder:请输入内容}}
{{placeholder:请输入内容}}
以及半角冒号短写:
{{:请输入内容}}
空提示也合法:
{{:}}
会显示为“请输入内容”。
{{:提示文字}}{{:提示文字}}{{placeholder:提示文字}}{{placeholder:提示文字}}{{:}} / {{placeholder:}} 自动使用“请输入内容”⌑ 标记{{:...}} 中间的提示文字;输入时暂时保留占位符外壳{{:已输入内容|}} 中按 Enter:完成当前占位符,得到普通文本 已输入内容,不换行{{:已输入内容|}} 中按 Tab:完成当前占位符,并跳到下一个占位符Shift+Tab 跳到上一个占位符data-property-type=text 或精确的 contenteditable=trueEnter 完成当前属性占位符,Tab 完成后跳到下一个属性占位符{{:...}}Properties 是 YAML frontmatter。为了保证 YAML 始终合法,建议给 placeholder 值加引号:
---
title: "{{:请输入标题}}"
owner: "{{:请输入负责人}}"
status: "{{:请输入状态}}"
---
Obsidian 的 Properties UI 中将显示:
title 请输入标题
owner 请输入负责人
status 请输入状态
点击“请输入标题”后,会进入真实属性值,并只选中中间的“请输入标题”:
{{:请输入标题}}
例如输入 客户资料查询接口 后,编辑态暂时是:
{{:客户资料查询接口}}
随后按 Enter 或 Tab 完成填写,最终保存成普通文本:
客户资料查询接口
v0.2.2 会扫描 Properties 的可编辑文本控件来识别 placeholder,并让长占位提示在属性区域内自然换行、自动撑高属性行。Tags / List / Number / Date 等非文本类型仍不主动改写,以避免破坏原生类型行为.
把下面 3 个文件复制到:
<Vault>/.obsidian/plugins/persistent-placeholder/
文件:
main.js
manifest.json
styles.css
然后:
Placeholdernpm install
npm run build
main.js 会生成在项目根目录。
---
title: "{{:请输入标题}}"
owner: "{{:请输入负责人}}"
---
# {{:请输入标题}}
## 背景
{{:请输入需求背景}}
## 方案
{{:请输入方案说明}}
Templater 不认识这些 token,因此会原样保留;Placeholder 插件随后负责渲染和导航。
插件不会把提示文字保存成隐藏数据。Markdown/YAML 中的 token 始终是事实来源:
{{:请输入负责人}}
填写后就是普通文本:
张三