此插件涉及到批量修改文档内容,所以使用前请进行数据备份!!使用此插件导致的任何数据丢失本人概不负责。
请在使用前备份数据!!
请在使用前备份数据!!
请在使用前备份数据!!
目录
obsidian-yaml-bulk-edit 批量编辑yaml
此插件涉及到批量修改文档内容,所以使用前请进行数据备份!!使用此插件导致的任何数据丢失本人概不负责。
请在使用前备份数据!!
请在使用前备份数据!!
请在使用前备份数据!!
若您在0.1.1之前使用过当前插件,则需要按照说明对设置项进行修改。
本插件仅支持对YAML中的单行属性进行操作,如果您的某个yaml属性并不是单行,那么请注意使用此插件可能会导致数据出现问题。
这个插件是即可以批量编辑obsidian中文档的yaml,也可以像notion那样表格编辑的形式来编辑某个文档的某个yaml。
插件的Github链接:https://github.com/1657744680/obsidian-yaml-bulk-edit 新版本(包括表格编辑YAML功能)功能演示视频:obsidian批量修改文档yaml属性插件新版本演示(表格编辑YAML!!) 最初版本的视频演示:obsidian批量修改文档yaml属性插件演示
安装
手动从release页面下载安装,或使用Brat进行安装
使用方法
您有两种方式操作yaml
-
面板批量更改YAML (包括增删改属性名、改属性值、删除YAML、清理空值一系列批量操作)
- 输入条件筛选文档
- 确认筛选的文档和自己想要修改的目标文档一致
- 选择操作
- 输入参数
- 修改完成
-
表格编辑YAML (编辑某个文档的某个属性值)
- 点击
筛选
筛选文档 - 点击
属性
指定显示的属性及顺序,还可以指定属性的名称和数据类型 - 点击
↑↓
设置排序条件,支持多条件排序,排序优先级即为条件的顺序 - 点击
搜索
对当前表格内容进行搜索 - 点击
刷新
重新读取缓存刷新表格 - 点击表格单元格来改变某个文档的某个属性值
- 其它注意事项详见(高级操作) yamledit 代码块
- 点击
面板批量更改YAML
面板①②③长度过长时均可以上下滑动
- Ctrl+P调出命令面板,选择命令
YAML属性批量管理: 打开操作面板
- 点击命令后进入面板①,在这里输入条件以筛选文档,可以添加新的条件(注意:各个条件之间为与关系),输入完成后确定。目前支持以下几种条件:
yaml
——包含/不包含
——属性名
yaml属性
——属性名
——属性值
标签
——包含/不包含
——标签名
文件名称
——符合/不符合
——正则表达式
文件路径
——符合/不符合
——正则表达式
- 点击确定后进入到面板②,这里会展示筛选的文档,当您确认文档符合要求后可选择具体操作进行下一步(如果发现显示的文档并不符合您的预期要求,那么您可以进一步选择或者关闭当前面板回到面板①重新设置条件)。可选择的操作有:
添加新属性
修改属性名
修改属性值
删除属性
删除整个YAML
清理控制属性
(肯需要多点几下)
- 点击具体操作后进入到面板③,在这里输入值来进行最后一步的操作。请谨慎操作!!确认输入无误后点击确定即可提交。
yaml 表格操作
创建表格
操作区域
操作区域是指表格的按钮、搜索部分,包括以下内容:
刷新
(点击重新读取缓存渲染表格)搜索
(只会对当前表格显示的内容进行搜索,对于checkbox类型的属性需要输入true或false来搜索)属性
(属性批量操作面板、属性显示控制、属性名称控制)排序
↑↓
(按照指定的排序条件进行排序,支持多条件排序,支持对文件和各属性按asc或desc排序)筛选
(和批量操作筛选文档的条件相同)
后面3个按钮的进一步说明:
- 点击
属性
后出现的操作区域中的批量操作属性
会对当前表格内的文档进行批量操作。 排序
↑↓
的优先级是您输入参数的顺序- 输入参数后需要点击确定才会发生更改,点击取消编辑即可取消更改。若表格未刷新,可自行点击按钮刷新。
- 这3个按钮都是支持多个参数的输入和删除。
表格区域
在此处直接编辑文档的属性值即可。
- 当您在点击
属性
按钮并指定某个属性的类型时,若您筛选的文档中的某个文档的该属性值不符合您指定的类型,那么对应单元格的值可能不会显示,而当您点击该单元格时,新值将会覆盖旧值!! - 当您操作表格的某个单元格且输入改变值时,若该单元格所对应的文档没有该单元格所对应的属性,那么插件会自动为该文档新建该属性。
(高级操作) yamledit 代码块
新版本(包括表格编辑YAML功能)功能演示视频:obsidian批量修改文档yaml属性插件新版本演示(表格编辑YAML!!)
我不太会CSS,表格样式的代码是QQ群的
Cuman
老哥按我的要求帮忙提供的,感谢!!
语法
```yamledit
id:id值
prop:属性1,属性2:name.属性2显示名称,属性3:type.属性3类型,属性4:name.属性4显示名称:type.属性4类型……
sort:属性1:desc/asc,属性2:desc/asc,……
条件1
条件2
……
```
(示例见代码示例)
参数说明
可以看到yamledit
代码块种一共是有3种数据:
基础操作 | 高级操作 | |
---|---|---|
id (必选) |
您需要为当前yaml表格输入一个id以使表格编辑正常运行。id:xxxxxxxxxx (只要这个id不和当前文档内的其它yamledit的id相同即可) |
|
prop (可选) |
指定要显示的属性,属性与属性之间使用英文半角逗号, 隔开。例如显示属性A ,B :prop:A,B 一个代码块种只允许存在一个 prop 行(指定 type. 类型时请谨慎操作!详见注意事项) |
①指定属性A 显示为名称b prop:A:name.b ②指定属性 A 的数据类型为c prop:A:type.c ③指定属性 A 显示为名称a ,且数据类型为c prop:A:name.b:type.c |
sort (可选) |
指定排序方式,多个排序之间使用英文半角逗号, 隔开。例如按属性A 升序排序:sort:A 一个代码块种只允许存在一个 sort 行 |
①按属性A 降序、B 升序排序sort:A:desc,B:asc ②按 文件名称 降序排序sort:文件:desc |
条件 (可选) |
筛选文档以显示(若不输入该参数则默认显示全部文档)。筛选条件详见筛选条件说明。 一个筛选条件占一行,想添加新的筛选条件换行即可 |
目前prop
中的type.
支持以下几种属性类型:
- text(默认类型,可显示所有类型的值)
- checkbox(选框)
- date(日期)
- time(时间)
- number(数字)
- img(仅支持在线图片)
注意事项
- 若您在
prop
中指定属性,请注意只有您指定且筛选的文档中含有的属性才会被显示 - 对于
prop
属性指定其type.
类型时,若您筛选的文档中的某个文档的该属性值不符合您指定的类型,那么对应单元格的值可能不会显示,而当您点击该单元格时,新值将会覆盖旧值!! - 当您操作表格的某个单元格且输入改变值时,若该单元格所对应的文档没有该单元格所对应的属性,那么插件会自动为该文档新建该属性。
相关设置项
禁止修改的属性名称
:在这里输入您想要禁止在表格中编辑的YAML属性。(一行一个属性,多个属性请换行)隐藏的属性名称
,在这里输入您想要默认隐藏的属性。(一行一个属性,多个属性请换行)(如果您在代码块中prop:
输入的要显示的属性中包含表格中隐藏的属性,那么该属性仍会被显示。换句话说,这个选项只在你的代码块中没有prop:
参数时起作用)
代码示例
1、没有筛选条件
- 默认显示全部文档
- 显示除默认隐藏属性外的所有属性
```yamledit
id:y87y12wyhq8wdh
```
2、一个筛选条件
- 显示除默认隐藏属性外的所有属性
```yamledit
id:y87y12wyhq8wdh
yaml:包含:导演
```
3、两个筛选条件
- 显示除默认隐藏属性外的所有属性
```yamledit
id:y87y12wyhq8wdh
文件路径:符合:电影/
yaml:包含:导演
```
4、选择显示的属性
- 按顺序显示prop属性且选中文档里存在的属性
```yamledit
id:y87y12wyhq8wdh
prop:国家,演员
文件路径:符合:电影/
yaml:包含:导演
```
5、增加排序条件
在示例4的基础上增加排序sort:国家:esc,演员:asc
,排序条件的顺序就是它的优先级,这里国家:desc
的优先级就要比演员:asc
的优先级高。
```yamledit
id:y87y12wyhq8wdh
sort:国家:desc,演员:asc
prop:国家,演员
文件路径:符合:电影/
yaml:包含:导演
```
6、更改属性的显示名称
在示例4的基础上更改,现在将演员
属性显示为actor
```yamledit
id:y87y12wyhq8wdh
prop:国家,演员:name.actor
文件路径:符合:电影/
yaml:包含:导演
```
7、指定属性的类型
在示例6的基础上更改,想在指定演员
的数据类型为text
(实际上默认就是text类型)
```yamledit
id:y87y12wyhq8wdh
prop:国家,演员:name.actor
文件路径:符合:电影/
yaml:包含:导演
```
筛选条件说明
每个条件之间是与关系。
参数1 | 参数2 | 参数3 | 说明 |
---|---|---|---|
yaml | 包含 不包含 |
属性名 | yaml 中包含/不包含 属性名 的文档 |
yaml属性 | 属性名 | 属性值 | yaml属性 中属性名 值为属性值 的文档 |
标签 | 包含 不包含 |
标签名(不带# 号) |
包含/不包含 标签名 的文档 |
文件名称 | 符合 不符合 |
正则表达式 | 文件名称 符合/不符合 正则表达式 的文档 |
文件路径 | 符合 不符合 |
正则表达式 | 文件路径 符合/不符合 正则表达式 的文档 |
未来规划
表格编辑
批量编辑
- 把涉及的笔记与Yaml属性做到一个二维表格里,用复选框或有无来增减属性值
- 设置项里增加对所有已存在的yaml表格的显示(包括文档路径、代码块参数)
版本更新日志
0.3.0
修复
- 修复了表格操作筛选文档时属性值中含英文冒号解析条件出错的bug
增强
- 为表格增加按键操作
- 刷新(点击重新读取缓存渲染表格)
- 搜索(只会对当前表格显示的内容进行搜索,对于checkbox类型的属性需要输入true或false来搜索)
- 属性(属性批量操作面板、属性显示控制、属性名称控制)
- 排序
↑↓
(按照指定的排序条件进行排序,支持多条件排序,支持对文件和各属性按asc或desc排序) - 筛选(和批量操作筛选文档的条件相同)
- 像notion那样,表格的属性是有类型的(注意,若您的属性值不符合您指定的属性类型,那么该值可能不会被显示!text类型可显示所有属性值)目前支持以下类型:
- text(默认)
- checkbox
- date
- time
- number
- img(仅支持在线图片)
0.2.0
修复
- 表格CSS与第三方主题冲突的问题 #2
增强
- 去除表格编辑YAML时的文件名称的
.md
后缀 - 支持多条件排序!
0.1.1
修复
- 修复不识别yaml中tags、tag的bug
增强
- 将设置项中的禁止删除和修改选项分为2项:①禁止批量操作的属性、②禁止表格操作的属性
- 设置中的操作项均由text改为textarea以方便编写
0.1.0
增强
- 支持代码块渲染为列表来编辑YAML
- 设置项中添加选项:表格中隐藏的属性名称
- 面板②增加操作:清理空值属性
0.0.3
增强
- 支持筛选文档后进一步选择目标文档
- 设置项中添加选项:忽略文件夹
0.0.2
修复
- 修复
yaml属性
选择属性后搜索选框不显示全部已存在的属性值的问题 - 修复未选择添加功能时自动添加
---
的问题
增强
- 为面板③修改删除、修改属性操作的第一个输入框增加候选项
- 面板②增加操作:删除整个yaml