Support imported YAML properties without adding a toolbar entry. Keep ordinary single-note exports body-only and retain full metadata for ZIP backups.
3.0 KiB
Markdown 笔记属性
文本笔记支持文件开头的 YAML Front Matter 属性头。在 Web 与桌面端富文本视图中,它显示为可折叠的「笔记属性」面板。仅已有属性头的文档显示该面板;普通笔记不增加属性入口。需要添加属性时,可在 Markdown 源码中编写属性头。面板支持文本、字符串列表(每行一个值)、数字、复选框和日期。嵌套属性保留可读展示,可通过 YAML 源码编辑。面板源码按钮与 Markdown 编辑器操作同一份文档数据。
---
title: 研究笔记
tags: [archive, research]
source: https://example.com/article
author: [Alice, Bob]
published: 2026-10-10
description: 简短摘要
custom:
reviewed: true
---
这里开始是笔记正文。
导入 .md 或 .markdown 文件时,会读取属性头的 title 和 tags。未提供有效标题时使用文件名。其他属性、注释与嵌套值保留在文档中。修改属性中的 title 和 tags 会同步现有笔记字段;修改原有字段时,也会同步已经存在的对应属性。删除属性仅将它从文档中移除,不会删除对应的应用字段。
单篇导出(包括卡片右键导出)对普通笔记仅导出正文,不新增属性头。文档已有属性头时保留原有属性,并更新已存在的标题和标签,不额外添加系统字段。选中笔记与完整 ZIP 导出生成一个属性头,包含自定义属性和当前笔记元数据。应用中的标题、标签、笔记本、创建与更新时间、置顶状态和 ID 优先于导入的副本。这些系统属性(标题和标签除外)在面板中只读;修改 YAML 中的副本不会改变应用状态。published 为独立、可编辑的发布日期。导入 edgeever_id 不会覆盖已有笔记。
非法 YAML、重复键、未知 YAML 类型标签、超过 64 KiB 的属性头或过度的别名展开,会显示错误并保留原文供修正。无效属性头导出时保持原样,避免丢失源码;修正为有效属性头后才合并应用元数据。普通 Markdown 分隔线、常规 YAML 代码示例和未闭合的属性头不会被识别为属性。属性不计入正文摘要和字数。
兼容与回滚
属性使用现有 codeBlock 文档节点及 edgeever-frontmatter 语言标记,无需数据库迁移。旧客户端会显示 YAML 代码块;旧编解码器可能将它序列化为围栏代码块,新编解码器能再次识别并导出为 Front Matter。撤回面板或回滚客户端后,这种可读形式仍保留。
已使用真实 v1.105.0 源码检查「新版 → 旧版编辑 → 新版」编解码往返。这不能替代打包后的 macOS、Windows、Linux、Android USB 真机或 iOS 跨版本测试;发布前仍需完成应用级跨版本验证。Android/iOS 原生编辑器目前显示属性代码块,尚未提供 Web 属性面板。
本功能不包含 Obsidian Vault 文件同步、属性专用检索、整个知识库统一的属性类型注册表或完整的 Obsidian 专属 Markdown 扩展支持。