diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json
index 957062b..3e32fcc 100644
--- a/.obsidian/appearance.json
+++ b/.obsidian/appearance.json
@@ -4,5 +4,7 @@
"nativeMenus": false,
"theme": "moonstone",
"accentColor": "",
- "enabledCssSnippets": []
+ "enabledCssSnippets": [
+ "多彩标签"
+ ]
}
\ No newline at end of file
diff --git a/.obsidian/snippets/多彩标签.css b/.obsidian/snippets/多彩标签.css
new file mode 100644
index 0000000..bcbd64a
--- /dev/null
+++ b/.obsidian/snippets/多彩标签.css
@@ -0,0 +1,70 @@
+@charset "UTF-8";
+/*
+ 优化版:Obsidian Metadata 多彩标签样式
+ - 只需修改下面的 --pill-bg-N 和 --pill-hover-N 变量即可定制你的调色板。
+*/
+
+/* 在所有非tags的metadata属性上统一定义颜色变量 */
+.metadata-property:not([data-property-key="tags"]) {
+ /* --- 色板3: 大地色系 / Earth Tones --- */
+ /* AA=33 表示20%透明度, AA=40 表示25%透明度 */
+ --pill-bg-1: #a98c7833; --pill-hover-1: #a98c7840; /* Clay Brown */
+ --pill-bg-2: #d8c3a533; --pill-hover-2: #d8c3a540; /* Almond */
+ --pill-bg-3: #8e8d8a33; --pill-hover-3: #8e8d8a40; /* Stone Grey */
+ --pill-bg-4: #e9807433; --pill-hover-4: #e9807440; /* Terracotta */
+ --pill-bg-5: #e85a4f33; --pill-hover-5: #e85a4f40; /* Rust Red */
+ --pill-bg-6: #d8ae4733; --pill-hover-6: #d8ae4740; /* Ochre */
+ --pill-bg-7: #a49e8d33; --pill-hover-7: #a49e8d40; /* Khaki Grey */
+ --pill-bg-8: #e6b47c33; --pill-hover-8: #e6b47c40; /* Sandy Brown */
+}
+
+/* 基础样式:确保内边距和背景填充正确 */
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill {
+ --pill-padding-x: var(--tag-padding-x);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill::after {
+ width: 100% !important;
+ left: 0 !important;
+}
+
+/* 颜色循环:现在只需引用变量,代码非常整洁 */
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+1) {
+ --pill-background: var(--pill-bg-1);
+ --pill-background-hover: var(--pill-hover-1);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+2) {
+ --pill-background: var(--pill-bg-2);
+ --pill-background-hover: var(--pill-hover-2);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+3) {
+ --pill-background: var(--pill-bg-3);
+ --pill-background-hover: var(--pill-hover-3);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+4) {
+ --pill-background: var(--pill-bg-4);
+ --pill-background-hover: var(--pill-hover-4);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+5) {
+ --pill-background: var(--pill-bg-5);
+ --pill-background-hover: var(--pill-hover-5);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+6) {
+ --pill-background: var(--pill-bg-6);
+ --pill-background-hover: var(--pill-hover-6);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+7) {
+ --pill-background: var(--pill-bg-7);
+ --pill-background-hover: var(--pill-hover-7);
+}
+
+.metadata-property:not([data-property-key="tags"]) .multi-select-pill:nth-child(8n+8) {
+ --pill-background: var(--pill-bg-8);
+ --pill-background-hover: var(--pill-hover-8);
+}
\ No newline at end of file
diff --git a/.obsidian/types.json b/.obsidian/types.json
index 72c2fc3..3ee90e4 100644
--- a/.obsidian/types.json
+++ b/.obsidian/types.json
@@ -26,6 +26,7 @@
"TQ_show_task_count": "checkbox",
"TQ_show_tree": "checkbox",
"TQ_show_urgency": "checkbox",
- "TQ_show_toolbar": "checkbox"
+ "TQ_show_toolbar": "checkbox",
+ "写完了吗": "checkbox"
}
}
\ No newline at end of file
diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index 123d86e..6bc6e17 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -13,13 +13,13 @@
"state": {
"type": "markdown",
"state": {
- "file": "School/vivado_ip.md",
+ "file": "Template/AutoAdd.md",
"mode": "source",
- "source": false,
+ "source": true,
"backlinks": false
},
"icon": "lucide-file",
- "title": "vivado_ip"
+ "title": "AutoAdd"
}
}
]
@@ -103,11 +103,9 @@
"type": "leaf",
"state": {
"type": "file-properties",
- "state": {
- "file": "School/vivado_ip.md"
- },
+ "state": {},
"icon": "lucide-info",
- "title": "vivado_ip的笔记属性"
+ "title": "笔记属性"
}
},
{
@@ -126,13 +124,13 @@
"state": {
"type": "outline",
"state": {
- "file": "School/vivado_ip.md",
+ "file": "Template/AutoAdd.md",
"followCursor": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
- "title": "vivado_ip 的大纲"
+ "title": "AutoAdd 的大纲"
}
}
],
@@ -204,7 +202,7 @@
}
}
],
- "currentTab": 3
+ "currentTab": 2
},
{
"id": "bf1e7d1a52b4651c",
@@ -255,18 +253,26 @@
},
"active": "9c82e7556515fa96",
"lastOpenFiles": [
+ "Bases/元数据列表.base",
+ "Collection/Markdown语法.md",
+ "Collection/linux命令.md",
+ "Collection/KMP算法.md",
+ "Collection/连~都忘记了的小知识.md",
+ "Collection/YAML用法.md",
+ "Collection/PID控制算法.md",
+ "🏡HOME.md",
+ "README.md",
+ "Diary/2026/04/2026-04-16 周四.md",
+ "未命名.canvas",
+ "School/vivado_ip.md",
"Template/Diary.md",
"YueQian/相关网站.md",
"Archive/test.md",
"Collection/配置备忘/navidrome.md",
"Collection/配置备忘/openclash配置.md",
"Collection/配置备忘/Typecho插件Aplayer使用教程.md",
- "🏡HOME.md",
"Bases/为什么会消失.md",
- "README.md",
"Bases/Diary.base",
- "Diary/2026/04/2026-04-16 周四.md",
- "Bases/test.base",
"Bases",
"Bases/未命名.base",
"Archive",
@@ -276,22 +282,13 @@
"Diary/2026/01/2026-01-30 周五.md",
"Diary/2026/01/2026-01-31 周六.md",
"Diary/2026/01/2026-01-27 周二.md",
- "Collection/未命名.md",
"Collection/未命名 1.md",
"Bases/Diay.base",
"Template/AutoAdd.md",
- "Diary/2026/02/2026-02-05 周四.md",
- "Diary/2026/02/2026-02-11 周三.md",
- "Diary/2026/02/2026-02-03 周二.md",
- "Diary/2026/02/2026-02-01 周日.md",
- "Diary/2026/04/2026-04-17 周五.md",
- "Diary/2026-04-16 周四.md",
- "未命名.md",
"Diary/2026/04",
"Diary/2026/01",
"Diary/2026/02",
"Diary/2026",
- "未命名.canvas",
"Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0486404994804c5fb05039cff405656astickPicture.png",
"Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE059f0c15158165303fc0fc990a90a445image.png",
"Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE048d46d9bb04ceb46b8fe1f3cc419d92image.png",
diff --git a/.obsidian/workspaces.json b/.obsidian/workspaces.json
index 0142de2..a0e8de0 100644
--- a/.obsidian/workspaces.json
+++ b/.obsidian/workspaces.json
@@ -1,27 +1,27 @@
{
"workspaces": {
- "260122": {
+ "260417": {
"main": {
- "id": "8991b07ab8f0472d",
+ "id": "5324373015726ba8",
"type": "split",
"children": [
{
- "id": "4e4eb7258fdc6262",
+ "id": "69f4530e14d73640",
"type": "tabs",
"children": [
{
- "id": "0a3de9047665030d",
+ "id": "9c82e7556515fa96",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
- "file": "YueQian/相关网站.md",
- "mode": "preview",
+ "file": "🏡HOME.md",
+ "mode": "source",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
- "title": "相关网站"
+ "title": "🏡HOME"
}
}
]
@@ -86,18 +86,28 @@
"dimension": 47.39756367663344,
"children": [
{
- "id": "d1e1fbb98edd7d1b",
+ "id": "ffdb392eea0ad1e2",
"type": "leaf",
"state": {
- "type": "outline",
+ "type": "tag",
"state": {
- "file": "YueQian/相关网站.md",
- "followCursor": true,
+ "sortOrder": "frequency",
+ "useHierarchy": false,
"showSearch": false,
"searchQuery": ""
},
- "icon": "lucide-list",
- "title": "相关网站 的大纲"
+ "icon": "lucide-tags",
+ "title": "标签"
+ }
+ },
+ {
+ "id": "f78029584b10fc88",
+ "type": "leaf",
+ "state": {
+ "type": "file-properties",
+ "state": {},
+ "icon": "lucide-info",
+ "title": "笔记属性"
}
},
{
@@ -111,35 +121,22 @@
}
},
{
- "id": "b701810dff40f03d",
+ "id": "d1e1fbb98edd7d1b",
"type": "leaf",
"state": {
- "type": "all-properties",
+ "type": "outline",
"state": {
- "sortOrder": "frequency",
+ "file": "🏡HOME.md",
+ "followCursor": true,
"showSearch": false,
"searchQuery": ""
},
- "icon": "lucide-archive",
- "title": "添加笔记属性"
- }
- },
- {
- "id": "ffdb392eea0ad1e2",
- "type": "leaf",
- "state": {
- "type": "tag",
- "state": {
- "sortOrder": "frequency",
- "useHierarchy": true,
- "showSearch": false,
- "searchQuery": ""
- },
- "icon": "lucide-tags",
- "title": "标签"
+ "icon": "lucide-list",
+ "title": "🏡HOME 的大纲"
}
}
- ]
+ ],
+ "currentTab": 3
}
],
"direction": "horizontal",
@@ -189,11 +186,9 @@
{
"id": "841e99623ecdb9f4",
"type": "leaf",
- "pinned": true,
"state": {
"type": "chinese-calendar-view",
"state": {},
- "pinned": true,
"icon": "calendar-with-checkmark",
"title": "日历"
}
@@ -234,25 +229,33 @@
},
"left-ribbon": {
"hiddenItems": {
- "homepage:打开主页": false,
+ "obsidian-livesync:P2P Replicator": false,
+ "obsidian-livesync:Replicate": false,
+ "obsidian-livesync:Show Log": false,
"graph:查看关系图谱": false,
"switcher:打开快速切换": false,
"command-palette:打开命令面板": false,
"workspaces:管理工作区布局": false,
- "i18n:I18N": false,
- "obsidian-git:打开Git源代码管理": false,
"obsidian-excalidraw-plugin:新建绘图文件": false,
"canvas:新建白板": false,
"bases:新建数据库": false,
"templater-obsidian:Templater": false,
"pdf-plus:PDF++: 切换自动粘贴": false,
"pdf-plus:PDF++: 切换自动对焦": false,
- "pdf-plus:PDF++: 切换自动复制": false
+ "pdf-plus:PDF++: 切换自动复制": false,
+ "nutstore-sync:Start sync": false,
+ "nutstore-sync:Stop sync": false,
+ "daily-notes:打开/创建今天的日记": false,
+ "obsidian-git:打开Git源代码管理": false,
+ "homepage:打开主页": false,
+ "obsidian42-brat:BRAT": false,
+ "i18n:common.i18n": false,
+ "obsidian-livesync:显示自定义同步": false
}
},
"active": "841e99623ecdb9f4",
- "mtime": "2026-01-22T16:41:43+08:00"
+ "mtime": "2026-04-17T23:08:26+08:00"
}
},
- "active": "260122"
+ "active": "260417"
}
\ No newline at end of file
diff --git a/Bases/test.base b/Bases/test.base
deleted file mode 100644
index f165474..0000000
--- a/Bases/test.base
+++ /dev/null
@@ -1,3 +0,0 @@
-views:
- - type: table
- name: 表格
diff --git a/Bases/元数据列表.base b/Bases/元数据列表.base
new file mode 100644
index 0000000..e2e8e91
--- /dev/null
+++ b/Bases/元数据列表.base
@@ -0,0 +1,17 @@
+views:
+ - type: table
+ name: 表格
+ order:
+ - file.name
+ - 笔记类型
+ - tags
+ - aliases
+ sort:
+ - property: 笔记类型
+ direction: ASC
+ - property: file.name
+ direction: ASC
+ columnSize:
+ file.name: 210
+ note.笔记类型: 171
+ note.tags: 344
diff --git a/Collection/Markdown语法.md b/Collection/Markdown语法.md
new file mode 100644
index 0000000..1305608
--- /dev/null
+++ b/Collection/Markdown语法.md
@@ -0,0 +1,358 @@
+---
+tags:
+ - Markdown语法
+ - 标记语言
+ - Obsidian
+aliases:
+ - MD语法
+ - Obsidian Markdown
+ - Markdown教程
+笔记类型: 永久笔记
+日期: 2026/4/17
+---
+# **语法速查表**
+
+| 功能 (Feature) | Markdown 语法 (Syntax) | 效果预览 (Result) |
+| :--- | :--- | :--- |
+| 一级标题 | `# 标题内容` | 最大的标题 |
+| 二级标题 | `## 标题内容` | |
+| 三级标题 | `### 标题内容` | (依此类推,可到六级) |
+| --- | --- | --- |
+| **加粗** | `**需要加粗的文字**` | **需要加粗的文字** |
+| *斜体* | `*需要倾斜的文字*` | *需要倾斜的文字* |
+| ***加粗并斜体*** | `***又粗又斜的文字***` | ***又粗又斜的文字*** |
+| ~~删除线~~ | `~~被删除的文字~~` | ~~被删除的文字~~ |
+| --- | --- | --- |
+| 无序列表 | `- 列表项` 或 `* 列表项` | • 列表项 |
+| 有序列表 | `1. 列表项一`
`2. 列表项二` | 1. 列表项一
2. 列表项二 |
+| 任务列表(待办) | `- [ ] 未完成的任务`
`- [x] 已完成的任务` | ☐ 未完成的任务
☑ 已完成的任务 |
+| --- | --- | --- |
+| > 引用 | `> 这是一段引用的文字` | > 这是一段引用的文字 |
+| `行内代码` | `` `code` `` | 用于突出显示单个变量或命令 |
+| 代码块 | ```` ```python `
`print("Hello, World!")`
` ``` ```` | 用于显示多行代码片段 |
+| --- | --- | --- |
+| 链接 | `[链接显示的文字](https://obsidian.md)` | [链接显示的文字](https://obsidian.md) |
+| 图片 | `` | (在笔记中会直接显示图片) |
+| 水平分割线 | `---` 或 `***` | 一条横跨整个页面的线 |
+
+
+
+
+
+
+
+> [!note]+ 标题
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 井号加空格,几个井号就是几级标题,一级标题字体最大。
+> # 一级标题
+> ## 二级标题
+> ```
+
+# 标题 1
+
+## 标题 2
+
+### 标题 3
+
+#### 标题 4
+
+##### 标题 5
+
+###### 标题 6
+
+---
+
+> [!note]+ 文本
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 两个星号是加粗:**我是加粗字体**
+> 一个型号是斜体:*我是斜体*
+> 三个星号,或者三个下划线是粗斜体:***我是粗斜体***,___我是粗斜体___
+> 两个等号是高亮:==我是高亮==
+> 两个波浪线是删除:~~我是删除~~
+> ```
+
+## 文本
+
+普通文本
+
+**段落粗体文本**
+
+*段落斜体文本*
+
+==高亮==
+
+~~删除~~
+
+***粗斜体***
+___粗斜体___
+~~删除~~
+
+
+---
+
+> [!note]+ 列表
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 无序列表:减号/加号/星号 + 空格,三个符号哪个都可以,但是建议用减号。 - 列表项1
+> 有序列表:数字+点+空格:1. 列表项
+> 输入完一个列表项后,打回车可以继续下一个列表项
+> 列表嵌套:使用tab可以让列表缩进,使用shift+tab可以取消缩进。
+>
+> 任务列表:方括号里面一个空格或者叉,空格代表未完成,叉代表已完成。
+> [x] 任务 1
+> [ ] 任务 2
+> Task插件可以使已完成的任务后面自动显示完成时间。
+>
+>任务列表并非原始的、John Gruber 定义的 Markdown 标准语法。然而,它已经成为一种被广泛接受和支持的 Markdown 扩展语法,许多现代的 Markdown 编辑器和笔记应用也都采纳了这种任务列表语法,因为它非常直观和实用。
+> ```
+## 列表
+**无序列表**
+- 列表项 1
+- 列表项 2
+ - 列表项 2.1
+ - 列表项 2.2
+- 列表项 3
+
+**有序列表**
+1. 列表项 a
+2. 列表项 b
+ 1. 列表项 b1
+ 2. 列表项 b2
+3. 列表项 c
+
+**任务列表**
+- [ ] 任务 1
+- [ ] 任务 2
+ - [ ] 嵌套任务 2.1
+ - [ ] 嵌套任务 2.2
+- [ ] 任务 3
+
+---
+
+## 段落
+> [!note]+ 段落
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 引用:大于号+空格:> 我是引用
+> 嵌套引用:多个大于号,每多一个大于号,代表深一层嵌套
+> 分割线:三个减号然后回车:---
+> 强制换行 (Soft Break / Line Break):在同一段落内强制开始一个新行,而不是开始一个新段落。使用方法:在一行的末尾输入两个或更多的空格,然后按回车键。
+> 备选方法:(如果 Markdown 解析器支持 HTML):直接使用 HTML 的
标签。
+>
+> ```
+
+引用语法:
+> 引用了一段名人名言
+>> 嵌套引用
+>>> 俄罗斯套娃
+
+强制换行:
+
+ 这是第一行文字(假设末尾有两个空格)
+ 第二行
+
+
+分割线:
+
+---
+
+> [!note]+ 链接
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> [普通链接](https://www.bing.com/)
+> [普通链接带标题](https://www.bing.com/ "普通链接带标题")
+> 直接链接:
+> 锚点链接:1. 在文稿起草阶段,还没确定具体网址,但可以先给出网址标题。2. 同一篇文章需要重复出现同一个网址时.
+> 使用方法:[网址标题][网址名]
+> 然后在其他地方(一般是文章最后)给出网址名的地址:[网址名]:https://www.bing.com/
+> [锚点链接][anchor-id]
+> [anchor-id]: http://www.this-anchor-link.com/
+>
+> ```
+
+## 链接
+
+[普通链接](https://www.bing.com/)
+
+直接链接:
+
+[锚点链接][锚点名称123]
+
+[锚点名称123]: http://www.this-anchor-link.com/
+
+
+
+---
+> [!note]+ 脚注
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 方括号内,上箭头,外加脚注名称(一般为标号)
+> 本句话要加脚注[^01]
+> [^01]:这是解释脚注 01的内容
+> ```
+
+## 脚注
+
+1. 要添加脚注的话[^01]
+2. 第二个要添加脚注的话[^02]
+
+[^01]:脚注内容一
+[^02]:脚注内容二
+
+
+
+---
+> [!note]+ 图片
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 图片语法与链接类似,只是在前面多一个感叹号!。
+> 示例:
+> 替代文本:当图片无法显示时展示的文字,也有助于屏幕阅读器。
+> 图片路径:可以是网络图片的 URL,也可以是本地文件的相对或绝对路径。
+> 可选的图片标题:鼠标悬停在图片上时显示的提示文字。
+>
+> 带链接的图片 (Clickable Images):
+> 使用方法:将图片的 Markdown 语法作为链接的“链接文本”部分。
+> [](链接地址)
+> [](https://www.bing.com/)
+> 点击即可跳转到bing.com,哪怕图片找不到,点击依然跳转到链接。
+> ```
+## 图片
+
+
+
+[](https://www.bing.com/)
+
+
+---
+
+> [!note]+ 表格
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 表头: 用竖线 | 分隔单元格内容。
+> 分隔行: 用竖线 | 分隔,并使用至少三个减号 - 来创建每个单元格的分隔线。可以通过在减号前后添加冒号 : 来控制该列的对齐方式:
+> 左对齐 (默认)::--- (或 :-)
+> 居中对齐::---: (或 :-:)
+> 右对齐:---: (或 -:)
+> 内容行 (Content Rows): 用竖线 | 分隔单元格内容。
+> 最外层的竖线 | 是可选的,但为了美观和清晰,建议加上。
+> ```
+
+## 表格
+
+| 名字 | 姓氏 | 电子邮件 |
+| ------ | ------- | -------------------------- |
+| John | Doe | john.doe@example.com |
+| Muffin | Poppies | muffin.poppies@example.com |
+| Jane | Doe | jane.doe@example.com |
+
+| 左对齐 | 居中对齐 | 右对齐 |
+| :----- | :------: | -----: |
+| AAA | BBB | CCC |
+
+---
+
+> [!note]+ 代码
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 行内代码用一个点包裹,代码块用三个点包裹,点是键盘上数字1左边的点。
+> 代码块可以指定代码语言,比如python、javascript,直接加在三个点后面即可。
+> 对于 Markdown 中的语言标识符(例如 javascript),通常不区分大小写。这意味着 javascript、JavaScript 和 JAVASCRIPT 应该产生相同的语法高亮效果。不过,最佳实践是使用小写形式。但这也可能取决于具体的 Markdown 解析器。
+>
+> Mermaid代码可以生成各种图标,感兴趣的可以单独学习Mermaid语法。
+> ```
+
+## 代码
+
+**行内代码**
+变量 `myvar` 被设置为值 `100`。
+
+**代码块**
+
+
+```python
+import numpy as np
+def calc(a):
+ return np.sqrt(a)*3
+
+test = calc(12)
+```
+
+Mermaid代码:
+```mermaid
+graph TD
+ A[开始] --> B(处理);
+ B --> C{条件?};
+ C -- 是 --> D[操作1];
+ C -- 否 --> E[操作2];
+ D --> F[结束];
+ E --> F;
+```
+
+
+# [[Obsidian]]特有或增强的Markdown 功能
+
+> [!note]+ 双链
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 1. [[笔记文件名]]:链接到仓库内的另一篇笔记。使用方法:用双层方括号 [[]] 包裹笔记的文件名 (无需 .md 后缀)。示例:[[我的待办事项]]
+> 2. [[笔记文件名#标题名]]:链接到另一篇笔记中的特定标题。使用方法:在文件名后加 # 和目标标题的文本。示例:[[Markdown 语法详解#10. 表格]]
+> 3. [[笔记文件名|自定义显示文本]]:链接到另一篇笔记,但显示自定义的链接文字。使用方法:在文件名后加 | 和希望显示的文本。示例: [[2024-05-27 Daily Note|昨天的日记]]
+> 4. ![[笔记文件名]]:将另一篇笔记的全部内容嵌入到当前笔记中。使用方法:与图片嵌入类似,但使用双层方括号,并以 ! 开头。示例: ![[常用代码片段]]
+> 5. ![[笔记文件名#标题名]]:将另一篇笔记中特定标题下的内容嵌入。使用方法:在文件名后跟特定标题。示例: ![[会议记录#行动项]]
+> 6. ![[笔记文件名#^块ID]]:嵌入笔记中被 \^块ID 标记的特定块(段落、列表项等)。使用方法:先在源笔记中,在你想要引用的段落或列表项的末尾添加一个块引用ID,格式为 ^yourBlockID (例如 ^task123)。然后在目标笔记中用 ![[源笔记文件名#^yourBlockID]] 来嵌入它。示例:在 "任务列表.md" 中: - [ ] 完成报告 ^reportTask,然后在当前笔记中嵌入: ![[任务列表#^reportTask]]
+> ```
+## 双链
+注意:这里使用反斜杠,是为了让Obsidian不把他识别为一个双链,否则Dashboard就会被认为是一个双链,从而在关系图谱中看到这个Dashboard节点。
+内部链接: \[[Dashboard]]
+
+---
+> [!note]+ 标签
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 以井号 # 开头,后跟标签名称。标签名不能包含空格,可以用 - 或 _ 连接多词标签 (如 #读书笔记 或 #project-alpha)。标签可以放在笔记的任意位置,包括 YAML Frontmatter 中的 tags 字段。
+> ```
+## 标签
+标签: #dashboard #notes
+
+---
+
+> [!note]+ 数学与公式
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> Obsidian 内置了对 KaTeX 的支持,用于渲染 LaTeX 数学公式。
+> $行内数学公式$:将公式嵌入到文本行中。
+> 使用方法:用一对美元符号 $ 包裹 LaTeX 公式。
+> $$块级数学公式$$:将公式在单独的块中居中显示。
+> 使用方法:两对美元符号包裹
+> ```
+
+## 数学与公式
+
+$$g=g_0 \frac{R^2}{\left( R + z \right)^2} = \frac{g_0}{\left(1 + z/R \right)^2} $$
+
+其中,
+$g$ = 指定距离处的相对引力。
+$g_0$ = \[[Surface Gravity |物体的表面引力]]。
+$R$ = 物体的半径。(通常是物体的赤道半径)。
+$z$ = 物体表面以上的距离。
+
+---
+
+> [!note]+ 引用块
+> ```
+> 注意:所有符号都是英文输入法下的符号
+> 使用方法: 引用块 (>) 之后紧跟 [!类型]。类型可以是 note, abstract, info, todo, tip, success, question, warning, failure, danger, bug, example, quote 等。
+> 可选标题**: 在 [!类型] 后可以添加自定义标题文本。
+> 可折叠**: 在类型后加减号 - (如 [!INFO]-) 可使标注默认折叠,加加号 + (如 [!INFO]+) 可使其默认展开 (通常默认就是展开)。
+> ```
+
+## 引用块 (Callouts)
+
+> [!note]+ 笔记引用块
+> 这是一个笔记引用块...
+
+> [!warning]- 警示引用块
+> 这是一个警示引用块...
\ No newline at end of file
diff --git a/Collection/YAML用法.md b/Collection/YAML用法.md
new file mode 100644
index 0000000..21cc06d
--- /dev/null
+++ b/Collection/YAML用法.md
@@ -0,0 +1,252 @@
+---
+tags:
+ - yaml
+aliases:
+ - yaml用法
+笔记类型: 永久笔记
+日期: 2026/4/17
+---
+**YAML (YAML Ain't Markup Language) 是一种以数据为中心、对人类友好的数据序列化语言。它因其简洁和高可读性而备受青睐,尤其是在配置文件和知识管理领域。**
+
+### 1. YAML的应用场景
+#### 作为Markdown知识笔记的元数据
+##### 什么是YAML Front Matter?
+
+- **定义:** 它是添加到文件第一行的一系列纯文本属性,用于在Markdown等文件中添加元数据。
+- **别称:** 也常被称为 front matter、页眉、前页、扉页、前言。
+- **作用:** 它是一种人类可读、文件级的元数据,为笔记本身添加了结构化的信息,使得软件可以基于这些信息进行强大的自动化处理,例如分类、查询和筛选。
+
+
+在Obsidian、Joplin等众多工具中,YAML Front Matter是核心功能。它为一篇笔记提供了超越其正文内容的“身份信息”。
+
+**示例:** 在一篇Obsidian笔记的开头,你可以这样定义元数据。
+
+```yaml
+---
+title: "我的Obsidian使用技巧"
+date: 2025-08-21
+tags: [Obsidian, 知识管理, YAML]
+aliases: [Obsidian技巧, 如何使用Obsidian]
+---
+```
+
+#### 作为AI提示词的格式
+
+当构建复杂的AI提示词(Prompt)时,需要一种能够清晰组织指令、变量和上下文的格式。YAML在这方面表现出色。
+
+| 格式 | 优点 | 缺点 | 适用场景 |
+| ------------ | ------------------------------------------------------------ | -------------------------------------- | -------------------------------------- |
+| **YAML** | 结构清晰,可读性高,易于手写和维护,适合表达复杂的层级关系。 | 语法依赖严格的缩进,对新手不友好。 | 复杂的、多参数的、需要模板化的AI任务。 |
+| **Markdown** | 自由流畅,接近自然语言,适合编写故事或对话型提示词。 | 结构性差,难以定义精确的配置参数。 | 文学创作、角色扮演、简单的问答。 |
+| **JSON** | 机器解析极为友好,语法严格,不易产生歧义,是API交互的标准。 | 手写繁琐,括号和引号过多,可读性较差。 | 程序化的API调用,自动化工作流。 |
+
+#### 作为配置文件
+
+YAML是许多现代软件和工具首选的配置文件格式,因为它能清晰地表达复杂的配置结构。
+
+- **智能家居自动化:** 在流行的开源智能家居平台 Home Assistant 中,用户主要通过编辑YAML文件(如 configuration.yaml)来设置自动化场景。例如,“当太阳下山时,自动打开客厅的灯”或者“当传感器检测到湿度低于40%时,开启加湿器”这样的规则,都是通过YAML来定义的。
+
+- **PC游戏的插件与Mod:** 许多PC游戏(尤其是沙盒类游戏如《我的世界》Minecraft)的服务器插件或Mod,都使用YAML文件作为配置文件。服务器的管理员或玩家可以通过修改这些 .yml 文件,来调整游戏规则、设置商店物品价格、或者自定义玩家加入时的欢迎信息,而无需编写任何代码。
+
+
+### 2. YAML的基础语法
+#### 核心规则
+
+1. **格式**:采用“关键词: 值”的键值对形式(关键词 英文冒号 空格 值)。
+样例:
+```yaml
+views:
+ - type: table
+ name: 表格
+ order:
+ - file.name
+ - file.fullname
+ - file.tags
+ - file.folder
+```
+2. **空格与缩进**:YAML 的语法对缩进和空格**极其敏感**,这是其结构的核心。理解并遵守这些规则是正确编写 YAML 的关键。
+ - **使用空格进行缩进**:通过空格缩进来表示数据的层级关系和嵌套。
+ - **严禁使用 Tab 键**:只能使用空格进行缩进,绝不能使用 Tab 键。混合使用或单独使用 Tab 键都会导致解析错误。
+ - **缩进需保持一致**:同一层级的元素必须左侧对齐(即保持相同的缩进量)。通常推荐使用 2 个或 4 个空格作为一级缩进。
+ - **冒号和短横线后的空格**:
+ - 键值对的冒号 (:) 后面必须跟一个空格。
+ - 列表项的短横线 (-) 后面必须跟一个空格。
+
+#### 基本数据结构
+
+YAML 主要由三种基本数据结构组成:纯量(Scalars)、序列(Sequences/Lists)和映射(Mappings/Dictionaries)。
+
+##### 1. 纯量 (Scalars)
+
+纯量是单个的、不可分割的值,是 YAML 中最基本的数据单元。
+
+- **字符串 (String)**
+ - 默认无需引号:my_string: Hello YAML
+ - 单引号 ('):不会转义特殊字符,所有内容视为字面量。
+ - 双引号 ("):会转义特殊字符,例如 \n 会被解析为换行符。
+- **数字 (Number)**:包括整数和浮点数。
+- **布尔值 (Boolean)**:true 或 false。
+- **空值 (Null)**:使用 null 或 ~ 表示。
+
+**示例代码:**
+```yaml
+# 字符串
+string_value: Hello YAML
+quoted_string: "This is a string with a \n newline."
+
+# 数字
+integer_value: 1024
+float_value: 3.14159
+
+# 布尔值
+is_active: true
+is_enabled: false
+
+# 空值
+empty_value: null
+another_empty: ~
+```
+
+##### 2. 序列 (Sequences / Lists)
+
+序列是一组有序的值,类似于编程语言中的数组或列表。每个列表项由一个短横线 (-) 和一个空格开头。
+
+**示例代码:**
+```yaml
+# 一个简单的水果列表
+fruits:
+ - Apple
+ - Orange
+ - Strawberry
+
+# 也可以使用行内(inline)格式
+fruits_inline: [Apple, Orange, Strawberry]
+```
+
+##### 3. 映射 (Mappings / Dictionaries)
+
+映射是键值对(key-value)的集合,类似于编程语言中的字典或哈希表。
+
+**示例代码:**
+```yaml
+# 描述一个用户的基本信息
+user:
+ name: John Doe
+ age: 30
+ email: john.doe@example.com
+
+# 也可以使用行内(inline)格式
+user_inline: {name: Jane Doe, age: 28}
+```
+
+#### 复合结构:数据嵌套
+
+以上三种基本结构可以自由组合,形成复杂的数据结构。这是 YAML 强大功能的核心体现。
+
+**示例代码:**
+```yaml
+# 一个用户列表,每个用户都是一个包含详细信息的映射
+users:
+ # 第一个用户
+ - name: Alice
+ age: 28
+ is_admin: true
+ roles: # "roles" 的值是一个序列
+ - editor
+ - publisher
+ # 第二个用户
+ - name: Bob
+ age: 35
+ is_admin: false
+ roles:
+ - viewer
+```
+
+#### 多行文本
+**字面量块 `|`**:保留每一个换行。适合要“按原样呈现”的文本。
+```yaml
+about: |
+ 第一行
+ 第二行
+ 第三行
+```
+解析后:`"第一行\n第二行\n第三行\n"`(注意末尾有 1 个换行,因为默认是clip-保留一个结尾换行(\n),但丢掉多余的尾随空行)。
+
+**折叠块** `>`:把换行折叠为空格(空行保留为换行)
+```yaml
+about: >
+ 这一段
+ 被写成了多行
+ 但会折叠成一行显示
+
+ 空行用来分段
+ 分段之间会出现真正的换行
+```
+解析后:`"这一段 被写成了多行 但会折叠成一行显示\n\n空行用来分段 分段之间会出现真正的换行\n"`
+(你看到:单个换行被折成空格;空行保留为 `\n`;末尾仍有一个换行,因为clip-保留一个结尾换行(\n),但丢掉多余的尾随空行)
+
+#### 注释
+
+使用井号 (#) 进行单行注释。从 # 开始到该行末尾的所有内容都会被忽略。
+```yaml
+# 这是一个注释,它将被解析器忽略。
+key: value # 这也是一个行内注释。
+```
+
+
+### 3. YAML在Obsidian中的实践
+
+在Obsidian中,YAML元数据是实现知识库从简单笔记集合升级为强大个人数据库的关键。它为每篇笔记赋予了结构化的“属性”,使得自动化管理和知识发现成为可能。
+
+#### 从YAML Front Matter到“属性”视图
+
+最初,YAML元数据需要手动在笔记顶端的`---`分隔符之间编写。为了降低使用门槛并提升体验,Obsidian推出了核心的“**属性**”(Properties)功能。
+
+* **可视化界面**:你不再需要手动输入YAML代码,可以通过一个直观的界面在笔记顶部添加、编辑或删除属性。这个界面提供了文本、数字、日期、复选框和列表等多种属性类型,并会自动补全已存在的属性名和值,极大地保证了数据的一致性。
+* **源码对应**:你在属性界面上的所有操作,都会实时、准确地转换成笔记源文件顶部的标准YAML Front Matter。你随时可以切换到“源码模式”查看和编辑底层的YAML代码。
+
+#### Obsidian原生支持的特殊属性
+
+Obsidian会对一些特定的YAML属性赋予特殊功能,让它们与软件的核心功能深度集成。
+
+| 属性 (Property) | 功能描述 (Description) | 格式要求 (Format Requirement) |
+| :--- | :--- | :--- |
+| `tags` | 定义笔记的标签,会自动被Obsidian的“标签面板”识别和索引。 | 必须是列表(Array)格式。 |
+| `aliases` | 为笔记设置一个或多个“别名”,方便通过别名进行链接和搜索。 | 必须是列表(Array)格式。 |
+| `cssclasses` | 为当前笔记应用一个或多个自定义的CSS样式片段,实现特定的视觉效果。 | 必须是列表(Array)格式。 |
+
+> **重要更新**:从Obsidian 1.4版本开始,官方统一并强制要求这些原生属性必须使用复数形式(`tags`, `aliases`, `cssclasses`),并且它们的值必须是列表格式。
+
+
+#### 设计你的个人化元数据系统
+
+YAML的真正威力在于自定义。通过建立一套规范的元数据体系,你可以为自己的知识库量身打造强大的分类和检索系统。
+
+| 实践建议 (Practice) | 目的与描述 (Purpose & Description) | 示例 (Example) |
+| :--- | :--- | :--- |
+| **规范命名** | 为了便于Dataview等插件查询,建议属性名全部使用小写,并用下划线代替空格。 | `creation_date` |
+| **笔记分类** | 使用`type`或`category`属性来定义笔记的类型,这是进行分类查询的基础。 | `type: book` |
+| **状态追踪** | 使用`status`属性来管理笔记的生命周期或项目的进度。 | `status: seedling` (想法) |
+| **建立关联** | 除了使用`[[链接]]`,你还可以用属性来定义更明确的关系。 | `author: [[作者A]]` |
+
+#### 通过Obsidian插件,让你的元数据“活”起来
+
+你精心维护的YAML属性,通过插件可以实现知识的自动化组织与呈现。
+
+| 插件 (Plugin) | 核心功能 (Core Function) | 应用实例 (Application Example) |
+| :--- | :--- | :--- |
+| **Dataview** | 使用简单的查询语言(DQL)从整个知识库中筛选、排序和展示笔记,自动生成动态的笔记列表和表格。 | 创建一个“动态首页”,自动汇总所有 `status: in-progress` 的任务。 |
+| **Bases** | (官方插件) 提供一个可视化的、类似Notion数据库的界面(表格、看板等)来浏览和批量编辑笔记的元数据。 | 以看板视图来管理所有 `type: project` 的笔记,并拖动卡片来改变它们的 `status` 属性。 |
+| **Metadata Menu** | 极大地增强了属性的编辑体验,可以为属性预设可选值或创建依赖关系,实现更高效、规范的元数据录入。 | 为`status`属性设置固定的下拉菜单选项:"待办"、"进行中"、"完成"。 |
+
+
+
+
+### 4. YAML的编辑器或格式化工具
+
+
+| 工具 | 类型 | 主要功能 |
+| ----------------------- | -------------- | ------------------------------------------------------------------ |
+| **VS Code + YAML 插件** | 桌面编辑器 | 语法高亮、自动补全、实时错误校验、代码折叠、格式化。 |
+| **Online YAML Parsers** | 在线工具,例如[YAML Checker - The YAML Syntax Validator](https://yamlchecker.com/) | 快速验证YAML语法是否正确,进行格式化和美化,适合临时检查。 |
+| **Prettier** | 代码格式化工具,例如[Prettier · Opinionated Code Formatter · Prettier](https://prettier.io/) | 通过插件支持YAML,可以在项目中统一代码风格,实现保存时自动格式化。 |
\ No newline at end of file
diff --git a/Template/AutoAdd.md b/Template/AutoAdd.md
index 7b83501..cce283e 100644
--- a/Template/AutoAdd.md
+++ b/Template/AutoAdd.md
@@ -3,5 +3,6 @@ tags:
- empty
aliases: empty
笔记类型: 未分类
+: -[ ]
日期: <%tp.date.now("YYYY/M/D") %>
---