自定义属性:给块和页面加元数据
创建自定义属性
直接在任意块里写:
- [ ] 完成 API 文档 priority:: high project:: 重构 deadline:: 2026-11-01
priority:: project:: deadline:: 都是你自己定义的属性名。Logseq 不做限制——任何 属性名:: 值 都是合法属性。
属性命名建议
- 用小写字母和连字符(kebab-case):
prioritydeadlineproject - 避免空格:用
page-type不要page type - 属性名要语义清晰——
priority比level好,deadline比due好 - 同一属性名全局统一——不要同时用
priority::和优先级::,保持一种
属性值
属性值可以是:
- 字符串:
status:: 进行中 - 数字:
进度:: 50 - 日期:
deadline:: 2026-11-01(Logseq 会解析为日期类型) - 链接/页面:
owner:: [[张三]](可以引用其他页面) - 标签:
category:: #后端 - 布尔:
done:: true
属性值里的 [[链接]] 和 #标签 也会被图谱收录——比如 owner:: [[张三]] 会让「张三」页面的反向引用里出现这条属性。
属性的可见性
在 Logseq DB 版本里,属性默认只在块属性面板里展开显示,不会在正文内容里直接显示。点击块左侧的属性展开按钮可以看到全部属性。
如果你希望属性在正文里也可见,在设置里打开「Show properties inline」。
属性在查询里的用法
自定义属性是查询和表格排序的关键:
{{query (and (task TODO) (property priority high))}}
→ 找出所有高优先级的未完成任务
{{query (property deadline "本周")}}
→ 找出本周到期的所有块
表格视图里,自定义属性自动变成列——你可以按 priority 列排序(high → medium → low),按 project 列分组,按 deadline 列筛选。
属性 vs 标签
| 维度 | 属性 | 标签 |
|---|---|---|
| 写法 | key:: value | #tag |
| 一个块可以有 | 多个不同的 key | 多个标签 |
| 适合 | 结构化数据(优先级、状态、日期、负责人) | 分类、主题标记 |
| 查询 | (property priority high) | #机器学习 |
| 可排序 | 是 | 否 |
| 可做列 | 是(表格视图) | 否 |
建议:标签标记主题,属性存结构化数据。
示例:项目管理系统
# 任务列表
- [ ] 重构数据库 priority:: high project:: 后端 deadline:: 2026-12-01 owner:: [[张三]]
- [ ] 写文档 priority:: medium project:: 后端 deadline:: 2026-11-15 owner:: [[李四]]
- [ ] 前端联调 priority:: high project:: 前端 deadline:: 2026-11-20 owner:: [[王五]]
# 仪表盘查询
{{query (and (task TODO) (property project 后端))}}
{{query (property priority high)}}
{{query (property deadline "十一月")}}
所有数据自动联动,一处修改处处同步。