Compare commits

...

2 Commits

Author SHA1 Message Date
1e93e06503 vault backup: 2026-04-18 01:07:12 2026-04-18 01:07:12 +08:00
9d03c26ec2 vault backup: 2026-04-18 00:37:11 2026-04-18 00:37:12 +08:00
64 changed files with 687 additions and 6762 deletions

View File

@@ -2,7 +2,7 @@
"version": 4, "version": 4,
"homepages": { "homepages": {
"Main Homepage": { "Main Homepage": {
"value": "🏡HOME", "value": "Meta/🏡HOME",
"kind": "文件", "kind": "文件",
"openOnStartup": true, "openOnStartup": true,
"openMode": "Replace all open notes", "openMode": "Replace all open notes",

View File

@@ -108,22 +108,6 @@
"updatedAt": 1776342507550, "updatedAt": 1776342507550,
"createdAt": 1776342507550 "createdAt": 1776342507550
}, },
"CR5aPHe1OQzsTosQljlx090kiuFI8sfb": {
"id": "CR5aPHe1OQzsTosQljlx090kiuFI8sfb",
"plugin": "multi-properties",
"title": "Multi Properties",
"type": "plugin",
"origin": "cloud",
"isActive": true,
"checksum": "6efcc9db5e800792ba76361c99af645bba57a6ae494b9cf0cb6704ac879e9ccc",
"cloud": {
"owner": "yunrr",
"repo": "obsidian-i18n-resources",
"hash": "6072b29b6072b29b6072b29b6072b29b"
},
"updatedAt": 1776342508913,
"createdAt": 1776342508913
},
"6P9TFNP8FuH4-ZjEPny-uk_a0wz1_sCk": { "6P9TFNP8FuH4-ZjEPny-uk_a0wz1_sCk": {
"id": "6P9TFNP8FuH4-ZjEPny-uk_a0wz1_sCk", "id": "6P9TFNP8FuH4-ZjEPny-uk_a0wz1_sCk",
"plugin": "nutstore-sync", "plugin": "nutstore-sync",
@@ -246,6 +230,22 @@
}, },
"updatedAt": 1776342728534, "updatedAt": 1776342728534,
"createdAt": 1776342728534 "createdAt": 1776342728534
},
"VUU_QlXXk1BoU0wRbeGYhF9Gpoi_1zRs": {
"id": "VUU_QlXXk1BoU0wRbeGYhF9Gpoi_1zRs",
"plugin": "multi-properties",
"title": "Multi Properties",
"type": "plugin",
"origin": "cloud",
"isActive": true,
"checksum": "f50c2fffeecd6896a3ff00b2574712b03e5f6fa3f709cb2fda13822683687f87",
"cloud": {
"owner": "yunrr",
"repo": "obsidian-i18n-resources",
"hash": "6b47cc816b47cc816b47cc816b47cc81"
},
"updatedAt": 1776444516042,
"createdAt": 1776444516042
} }
} }
} }

View File

@@ -42,12 +42,6 @@
"pluginVersion": "4.4.0", "pluginVersion": "4.4.0",
"translationVersion": "2.0.0" "translationVersion": "2.0.0"
}, },
"multi-properties": {
"id": "multi-properties",
"isApplied": true,
"pluginVersion": "1.4.0",
"translationVersion": "2.0.0"
},
"nutstore-sync": { "nutstore-sync": {
"id": "nutstore-sync", "id": "nutstore-sync",
"isApplied": true, "isApplied": true,
@@ -95,6 +89,12 @@
"isApplied": true, "isApplied": true,
"pluginVersion": "1.0.9", "pluginVersion": "1.0.9",
"translationVersion": "1.0.0" "translationVersion": "1.0.0"
},
"multi-properties": {
"id": "multi-properties",
"isApplied": true,
"pluginVersion": "1.4.0",
"translationVersion": "1.0.0"
} }
}, },
"themes": {} "themes": {}

View File

@@ -1,163 +0,0 @@
{
"schemaVersion": 1,
"metadata": {
"plugin": "multi-properties",
"version": "2.0.0",
"title": "Multi Properties",
"description": "Adds Properties to multiple notes at once. Either right-click a folder, or select multiple notes and right-click the selection.",
"language": "zh-cn",
"supportedVersions": "1.1.2",
"author": ""
},
"dict": {
"main.js": {
"ast": [],
"regex": [
{
"source": "Notice(\"Delimiter must be a single character.\")",
"target": "Notice(\"分隔符必须是单个字符。\")"
},
{
"source": "Notice(\"Please check at least one property to remove.\")",
"target": "Notice(\"请检查至少一个要删除的属性。\")"
},
{
"source": "Notice(\"No properties to remove\")",
"target": "Notice(\"没有要删除的属性\")"
},
{
"source": "Notice(\"No files to add properties to.\", 4e3)",
"target": "Notice(\"没有要添加属性的文件。\", 4e3)"
},
{
"source": "Notice(\"No files to remove properties from.\", 4e3)",
"target": "Notice(\"没有要从中删除属性的文件。\", 4e3)"
},
{
"source": "text: \"Add Properties\"",
"target": "text: \"添加属性\""
},
{
"source": "text: \"Remove Properties\"",
"target": "text: \"移除属性\""
},
{
"source": ".setName(\"Overwrite existing text\")",
"target": ".setName(\"覆盖现有文本\")"
},
{
"source": ".setName(\"Recursive Iteration\")",
"target": ".setName(\"递归迭代\")"
},
{
"source": ".setName(\"List Delimiter\")",
"target": ".setName(\"列表分隔符\")"
},
{
"source": ".setDesc(\n \"When adding a property with a name that already exists, the text will overwrite the prop's existing value. If left disabled, the new value will be appended to the old as a List.\"\n )",
"target": ".setDesc(\n \"添加名称已经存在的属性时,文本将覆盖该属性的现有值。 如果保持禁用状态,新值将作为列表添加到旧值。 \"\n )"
},
{
"source": ".setDesc(\n \"When toggled on, while looping through all files in a folder, you will also loop through any sub-folders.\"\n )",
"target": ".setDesc(\n \"启用后,在循环遍历文件夹中的所有文件时,还将循环遍历任何子文件夹。 \"\n )"
},
{
"source": ".setDesc(\n \"Set delimiter to use when creating a list. Commas(,) are used by default.\"\n )",
"target": ".setDesc(\n \"设置要在创建列表时使用的分隔符。 默认使用逗号(,)。 \"\n )"
},
{
"source": ".setTitle(\"Add props to folder's notes\")",
"target": ".setTitle(\"在文件夹的注释中添加props\")"
},
{
"source": ".setTitle(\"Remove props from folder's notes\")",
"target": ".setTitle(\"从文件夹的笔记中删除props\")"
},
{
"source": ".setTitle(\"Add props to selected files\")",
"target": ".setTitle(\"向所选文件添加props\")"
},
{
"source": ".setTitle(\"Remove props from selected files\")",
"target": ".setTitle(\"从选定的文件中删除props\")"
},
{
"source": ".setTitle(\"Add props to search results\")",
"target": ".setTitle(\"在搜索结果中添加props\")"
},
{
"source": ".setTitle(\"Remove props from search results\")",
"target": ".setTitle(\"在搜索结果中移除props\")"
},
{
"source": "Type in a property name, then value. Use the dropbox to choose what type of\\r\\n data you wish to store.",
"target": "输入属性名称和值。使用下拉框选择您希望存储的\\r\\n 数据类型。"
},
{
"source": "If you want to make a List property, use the Text data type and separate\\r\\n each value with a",
"target": "如需创建列表属性,请使用文本数据类型并用符号分隔\\r\\n 每个值。"
},
{
"source": "If you want to add Tags, use the name \"tags\".",
"target": "如需添加标签,请使用属性名 \"tags\"。"
},
{
"source": "Overwrite existing properties",
"target": "覆盖已有属性"
},
{
"source": "Select the properties you wish to remove from the file selection.",
"target": "从文件选择中勾选您希望移除的属性。"
},
{
"source": "Please select at least one property to remove.",
"target": "请至少选择一个要移除的属性。"
},
{
"source": "The following props will be added:",
"target": "以下属性将被添加:"
},
{
"source": "Are you sure you wish to proceed?",
"target": "确认要继续执行吗?"
},
{
"source": "will be removed",
"target": "将被移除"
},
{
"source": "`The following",
"target": "`下列"
},
{
"source": "\"Delete\"",
"target": "\"删除\""
},
{
"source": "Check if you entered a valid path in the Default Props File setting.",
"target": "请检查默认属性文件设置中输入的路径是否有效。"
},
{
"source": "No properties to remove",
"target": "无属性可移除"
},
{
"source": "Not a valid Props template.",
"target": "无效的属性模板。"
},
{
"source": "Function called outside component initialization",
"target": "函数在组件初始化之外被调用"
},
{
"source": "\"Default Props File\"",
"target": "\"默认属性文件\""
},
{
"source": "Select a file with properties that you want to load into the Multi Properties form by default. Type in the full path of the desired file.(ex. Templates/PropFile 1)",
"target": "选择一个包含属性的文件,该文件将默认载入多属性表单。请输入目标文件的完整路径。(例如Templates/PropFile 1)"
}
]
}
}
}

View File

@@ -0,0 +1,181 @@
{
"schemaVersion": 1,
"metadata": {
"plugin": "multi-properties",
"version": "1.0.0",
"title": "Multi Properties",
"description": "Multi Properties Localization & Tweaks",
"language": "zh-cn",
"supportedVersions": "1.4.0",
"author": ""
},
"dict": {
"main.js": {
"ast": [
{
"type": "AssignmentExpression",
"name": "nodeValue",
"source": "How to alter props that already exist on notes. ",
"target": "如何修改笔记中已存在的属性。"
},
{
"type": "AssignmentExpression",
"name": "title",
"source": "Add props to file.",
"target": "向文件添加属性。"
},
{
"type": "AssignmentExpression",
"name": "title",
"source": "Add props to folder.",
"target": "向文件夹添加属性。"
},
{
"type": "CallExpression",
"name": "addOption",
"source": "Ignore prop",
"target": "忽略属性"
},
{
"type": "CallExpression",
"name": "addOption",
"source": "Append to prop",
"target": "追加到属性"
},
{
"type": "CallExpression",
"name": "addOption",
"source": "Overwrite prop",
"target": "覆盖属性"
},
{
"type": "CallExpression",
"name": "setDesc",
"source": "Determine what to do when a property with the same name already exists in a file. Note that incompatible types cannot be appended.(adding a number to a date)",
"target": "当文件中已存在同名属性时,确定要执行的操作。注意,不兼容的类型无法追加。(例如将数字添加到日期)"
},
{
"type": "CallExpression",
"name": "setDesc",
"source": "When toggled on, while looping through all files in a folder, you will also loop through any sub-folders.",
"target": "启用后,在遍历文件夹中的所有文件时,也会遍历任何子文件夹。"
},
{
"type": "CallExpression",
"name": "setDesc",
"source": "Set delimiter to use when creating a list. Commas(,) are used by default.",
"target": "设置创建列表时使用的分隔符。默认使用逗号(,)。"
},
{
"type": "CallExpression",
"name": "setName",
"source": "How to alter existing properties.",
"target": "如何修改现有属性。"
},
{
"type": "CallExpression",
"name": "setName",
"source": "Recursive Iteration",
"target": "递归迭代"
},
{
"type": "CallExpression",
"name": "setName",
"source": "List Delimiter",
"target": "列表分隔符"
},
{
"type": "CallExpression",
"name": "setName",
"source": "Default Props File",
"target": "默认 Props 文件"
},
{
"type": "CallExpression",
"name": "setTitle",
"source": "Add props from all tabs",
"target": "从所有选项卡添加 props"
},
{
"type": "CallExpression",
"name": "setTitle",
"source": "Add props to selected files",
"target": "向选定文件添加 props"
},
{
"type": "CallExpression",
"name": "setTitle",
"source": "Add props to search results",
"target": "向搜索结果添加 props"
},
{
"type": "CallExpression",
"name": "warn",
"source": "%c[svelte] lifecycle_double_unmount\n%cTried to unmount a component that was not mounted\nhttps://svelte.dev/e/lifecycle_double_unmount",
"target": "%c[svelte] lifecycle_double_unmount\n%c尝试卸载一个未挂载的组件\nhttps://svelte.dev/e/lifecycle_double_unmount"
},
{
"type": "CallExpression",
"name": "warn",
"source": "%c[svelte] state_proxy_unmount\n%cTried to unmount a state proxy, rather than a component\nhttps://svelte.dev/e/state_proxy_unmount",
"target": "%c[svelte] state_proxy_unmount\n%c尝试卸载状态代理而不是组件\nhttps://svelte.dev/e/state_proxy_unmount"
},
{
"type": "CallExpression",
"name": "warn",
"source": "%c[svelte] svelte_boundary_reset_noop\n%cA \\`<svelte:boundary>\\` \\`reset\\` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",
"target": "%c[svelte] svelte_boundary_reset_noop\n%c\\`<svelte:boundary>\\` 的 \\`reset\\` 函数只在首次调用时重置边界\nhttps://svelte.dev/e/svelte_boundary_reset_noop"
},
{
"type": "CallExpression",
"name": "warn",
"source": "Failed to hydrate: ",
"target": "水合失败:"
},
{
"type": "NewExpression",
"name": "Notice",
"source": "Delimiter must be a single character.",
"target": "分隔符必须是单个字符。"
},
{
"type": "NewExpression",
"name": "Notice",
"source": "No active file to add properties to.",
"target": "没有可添加属性的活动文件。"
},
{
"type": "NewExpression",
"name": "Notice",
"source": "No open tabs in the active tab group to add properties to.",
"target": "活动标签组中没有可添加属性的打开标签页。"
},
{
"type": "NewExpression",
"name": "Notice",
"source": "No files to add properties to.",
"target": "没有可添加属性的文件。"
},
{
"type": "ObjectProperty",
"name": "name",
"source": "Add props to current note",
"target": "将属性添加到当前笔记"
},
{
"type": "ObjectProperty",
"name": "name",
"source": "Add props to tabs in active tab group",
"target": "将属性添加到活动标签组中的标签页"
},
{
"type": "ObjectProperty",
"name": "text",
"source": "Add Properties",
"target": "添加属性"
}
],
"regex": []
}
}
}

View File

@@ -1,6 +1,7 @@
{ {
"overwrite": false, "alterProp": "ignore",
"recursive": true, "recursive": true,
"delimiter": ",", "delimiter": ",",
"defaultPropPath": "" "defaultPropPath": "/Template/Autoadd",
"overwrite": false
} }

File diff suppressed because one or more lines are too long

View File

@@ -29,6 +29,10 @@
"TQ_show_toolbar": "checkbox", "TQ_show_toolbar": "checkbox",
"写完了吗": "checkbox", "写完了吗": "checkbox",
"达到预期": "checkbox", "达到预期": "checkbox",
"笔记类型": "multitext" "笔记类型": "multitext",
"created": "datetime",
"date": "date",
"type": "multitext",
"status": "multitext"
} }
} }

View File

@@ -4,20 +4,22 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "69f4530e14d73640", "id": "4455a6750650191e",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "9c82e7556515fa96", "id": "3cb10f3776dfbfbf",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "bases", "type": "markdown",
"state": { "state": {
"file": "Bases/元数据列表.base", "file": "Collection/YAML用法.md",
"viewName": "表格" "mode": "preview",
"source": false,
"backlinks": false
}, },
"icon": "lucide-table", "icon": "lucide-file",
"title": "元数据列表" "title": "YAML用法"
} }
} }
] ]
@@ -122,13 +124,13 @@
"state": { "state": {
"type": "outline", "type": "outline",
"state": { "state": {
"file": "Bases/元数据列表.base", "file": "Collection/YAML用法.md",
"followCursor": true, "followCursor": true,
"showSearch": false, "showSearch": false,
"searchQuery": "" "searchQuery": ""
}, },
"icon": "lucide-list", "icon": "lucide-list",
"title": "元数据列表 的大纲" "title": "YAML用法 的大纲"
} }
} }
], ],
@@ -249,44 +251,45 @@
"obsidian-livesync:显示自定义同步": false "obsidian-livesync:显示自定义同步": false
} }
}, },
"active": "9c82e7556515fa96", "active": "3cb10f3776dfbfbf",
"lastOpenFiles": [ "lastOpenFiles": [
"Template/AutoAdd.md", "Collection/PID控制算法.md",
"Template/Diary.md",
"Bases/元数据列表.base",
"Collection/Markdown语法.md", "Collection/Markdown语法.md",
"Collection/linux命令.md", "Collection/linux命令.md",
"Collection/KMP算法.md", "Collection/KMP算法.md",
"Collection/未命名.md",
"Collection/连~都忘记了的小知识.md", "Collection/连~都忘记了的小知识.md",
"Collection/YAML用法.md", "BlogWebsite/Article/通过SSH密钥连接LINUX服务器.md",
"Collection/PID控制算法.md", "BlogWebsite/Article/飞牛搭配mtphotos使用passnet内网穿透服务优雅快速的分享照片访问.md",
"🏡HOME.md",
"README.md",
"Diary/2026/04/2026-04-16 周四.md",
"未命名.canvas",
"School/vivado_ip.md",
"YueQian/相关网站.md",
"Archive/test.md",
"Collection/配置备忘/navidrome.md",
"Collection/配置备忘/openclash配置.md",
"Collection/配置备忘/Typecho插件Aplayer使用教程.md",
"Bases/为什么会消失.md", "Bases/为什么会消失.md",
"README.md",
"Meta/笔记元数据管理规范.md",
"Meta/🏡HOME.md",
"YueQian/assets/相关网站/相关网站_Excalidraw20260121.md",
"YueQian/相关网站.md",
"Collection/配置备忘/openclash配置.md",
"Collection/配置备忘/navidrome.md",
"Collection/配置备忘/Typecho插件Aplayer使用教程.md",
"BlogWebsite/Article/在ARM架构的Ubuntu中使用Docker Compose部署MTPhotos.md",
"BlogWebsite/Article/Debian从零开始使用pnpm部署项目.md",
"BlogWebsite/Article/docker的容器和镜像的删除操作.md",
"BlogWebsite/Article/MarkdownTest.md",
"BlogWebsite/Article/Obsidian使用飞牛WebDAV实现多端同步.md",
"BlogWebsite/Page/关于与声明.md",
"BlogWebsite/Page/友情链接.md",
"Excalidraw/Drawing 20260122.md",
"Template/AutoAdd.md",
"Bases/元数据列表.base",
"Meta",
"未命名.canvas",
"Bases/Diary.base", "Bases/Diary.base",
"Bases", "Bases",
"Bases/未命名.base", "Bases/未命名.base",
"Archive", "Archive",
"Diary/2026/02/2026-02-07 周六.md",
"Diary/2026/01/2026-01-28 周三.md",
"Diary/2026/01/2026-01-29 周四.md",
"Diary/2026/01/2026-01-30 周五.md",
"Diary/2026/01/2026-01-31 周六.md",
"Diary/2026/01/2026-01-27 周二.md",
"Collection/未命名 1.md",
"Bases/Diay.base", "Bases/Diay.base",
"Diary/2026/04", "Diary/2026/04",
"Diary/2026/01", "Diary/2026/01",
"Diary/2026/02", "Diary/2026/02",
"Diary/2026",
"Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0486404994804c5fb05039cff405656astickPicture.png", "Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0486404994804c5fb05039cff405656astickPicture.png",
"Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE059f0c15158165303fc0fc990a90a445image.png", "Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE059f0c15158165303fc0fc990a90a445image.png",
"Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE048d46d9bb04ceb46b8fe1f3cc419d92image.png", "Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE048d46d9bb04ceb46b8fe1f3cc419d92image.png",

View File

@@ -1,7 +1,4 @@
--- ---
tags: {}
- empty
aliases: empty
日期: 2026/4/15
--- ---
这是一个测试这是一个测试 这是一个测试这是一个测试

3
Archive/未命名 1.md Normal file
View File

@@ -0,0 +1,3 @@
---
{}
---

3
Archive/未命名.md Normal file
View File

@@ -0,0 +1,3 @@
---
{}
---

View File

@@ -1,7 +1,3 @@
--- ---
tags: {}
- empty
aliases: empty
笔记类型:
日期: 2026/4/17
--- ---

View File

@@ -1,20 +1,26 @@
properties:
note.日期:
displayName: date
note.date:
displayName: date
note.笔记类型:
displayName: type
note.达到预期:
displayName: star
views: views:
- type: table - type: table
name: 表格 name: 表格
order: order:
- file.name - file.name
- 达到预期 - type
- 笔记类型 sort: []
- tags
- aliases
- 日期
sort:
- property: 笔记类型
direction: ASC
- property: file.name
direction: ASC
columnSize: columnSize:
file.name: 210 file.name: 210
note.笔记类型: 318 note.aliases: 136
note.tags: 344 note.tags: 170
note.aliases: 321 note.type: 107
note.status: 126
note.date: 77
note.created: 88
note.笔记类型: 100
note.日期: 261

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
## 安装nodejs22+环境 ## 安装nodejs22+环境
### 使用使用 NodeSource ### 使用使用 NodeSource
首先,添加 NodeSource 的 PPA个人包存档 首先,添加 NodeSource 的 PPA个人包存档

View File

@@ -1,5 +1,11 @@
--- ---
笔记类型: aliases:
tags:
-
type:
status:
star: false
date:
--- ---
# 这是一级标题 # 这是一级标题

View File

@@ -1,12 +1,11 @@
--- ---
aliases:
tags: tags:
- "#飞牛" -
- Webdav type:
- obsidian status:
- 同步 star: false
aliases: empty date:
日期: 2026/1/24
笔记类型:
--- ---
# Obsidian使用飞牛WebDAV实现多端同步 # Obsidian使用飞牛WebDAV实现多端同步
## 前言 ## 前言

View File

@@ -1,5 +1,11 @@
--- ---
笔记类型: aliases:
tags:
-
type:
status:
star: false
date:
--- ---
# Docker容器和镜像的删除操作 # Docker容器和镜像的删除操作
## 容器和镜像的关系 ## 容器和镜像的关系

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 在ARM架构的Ubuntu中使用Docker Compose部署MTPhotos # 在ARM架构的Ubuntu中使用Docker Compose部署MTPhotos
## 前言 ## 前言
之前我总是使用1panel面板的Docker进行图形化的操作直到有一天我遇到了一个需要三个镜像配合的项目——MTPhotos 之前我总是使用1panel面板的Docker进行图形化的操作直到有一天我遇到了一个需要三个镜像配合的项目——MTPhotos

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# SSH舍弃密码拥抱密钥 # SSH舍弃密码拥抱密钥
## 前提条件 ## 前提条件
使用**ROOT**用户普通用户请自己加sudo、客户端使用Windows PowerShell终端、服务端使用Debian12+或是Ubuntu24+ 使用**ROOT**用户普通用户请自己加sudo、客户端使用Windows PowerShell终端、服务端使用Debian12+或是Ubuntu24+

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
## 依旧前言 ## 依旧前言
### 瞎比比 ### 瞎比比
博主在八月下旬去川西耍了一耍小环线自驾游也是拍了很多照片用之前的arm搭建的mtphotos实现图片备份跟共享的还是非常舒服的但是呢博主用的是ipv6的网络朋友们使用流量呢还是很顺滑的就是连上wifi后呢基本就不行了现在大部分wifi呢依旧只提供ipv4而且博主用的还是ddns众所周知呢国内服务器没有备案呢是用不了80跟443一类的标准端口的所以博主跟朋友们分享的链接后面跟了个端口看着就非常的不优雅正好飞牛和零刻联合出了个小NAS正好就能解决博主之前的一大堆问题废话不多说下面是正文。 博主在八月下旬去川西耍了一耍小环线自驾游也是拍了很多照片用之前的arm搭建的mtphotos实现图片备份跟共享的还是非常舒服的但是呢博主用的是ipv6的网络朋友们使用流量呢还是很顺滑的就是连上wifi后呢基本就不行了现在大部分wifi呢依旧只提供ipv4而且博主用的还是ddns众所周知呢国内服务器没有备案呢是用不了80跟443一类的标准端口的所以博主跟朋友们分享的链接后面跟了个端口看着就非常的不优雅正好飞牛和零刻联合出了个小NAS正好就能解决博主之前的一大堆问题废话不多说下面是正文。

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
## 关于这个博客 ## 关于这个博客
### 🌱 为什么会有这个博客? ### 🌱 为什么会有这个博客?
这个小小的角落,诞生于 2025 年的一个周末。当时我发现自己在学习和生活中积累了很多零散的思考 —— 可能是一段代码调试的心得、一本好书的批注、一次旅行中的观察,或是对某个社会现象的浅见。 这个小小的角落,诞生于 2025 年的一个周末。当时我发现自己在学习和生活中积累了很多零散的思考 —— 可能是一段代码调试的心得、一本好书的批注、一次旅行中的观察,或是对某个社会现象的浅见。

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
!!! !!!
[icon]https://mono.imakashi.eu.org/overall/headicon2.webp [icon]https://mono.imakashi.eu.org/overall/headicon2.webp
[link]https://imakashi.eu.org/blog [link]https://imakashi.eu.org/blog

View File

@@ -1,9 +1,10 @@
--- ---
tags: tags:
- KMP aliases:
- AI生成 type:
- C语言 status:
笔记类型: star: false
date:
--- ---
KMPKnuth-Morris-Pratt算法是一种用于字符串匹配的算法它能在O(n+m)的时间复杂度内完成字符串的匹配其中n是主串的长度m是模式串的长度。这个算法是由Donald Knuth、Vaughan Pratt和Vaughan Morris在1970年共同发明的。 KMPKnuth-Morris-Pratt算法是一种用于字符串匹配的算法它能在O(n+m)的时间复杂度内完成字符串的匹配其中n是主串的长度m是模式串的长度。这个算法是由Donald Knuth、Vaughan Pratt和Vaughan Morris在1970年共同发明的。

View File

@@ -1,14 +1,10 @@
--- ---
tags: tags:
- Markdown语法
- 标记语言
- Obsidian
aliases: aliases:
- MD语法 type:
- Obsidian Markdown status:
- Markdown教程 star: false
笔记类型: date:
日期: 2026/4/17
--- ---
# **语法速查表** # **语法速查表**

View File

@@ -1,9 +1,10 @@
--- ---
tags: tags:
- PID aliases:
- AI生成 type:
- C语言 status:
笔记类型: star: false
date:
--- ---
以下是一个简单的C语言实现PID控制算法的程序示例 以下是一个简单的C语言实现PID控制算法的程序示例

View File

@@ -1,10 +1,10 @@
--- ---
tags: tags:
- yaml
aliases: aliases:
- yaml用法 type:
笔记类型: status:
日期: 2026/4/17 star: false
date:
--- ---
**YAML (YAML Ain't Markup Language) 是一种以数据为中心、对人类友好的数据序列化语言。它因其简洁和高可读性而备受青睐,尤其是在配置文件和知识管理领域。** **YAML (YAML Ain't Markup Language) 是一种以数据为中心、对人类友好的数据序列化语言。它因其简洁和高可读性而备受青睐,尤其是在配置文件和知识管理领域。**

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
李林峰 李林峰
课程学习内容概览: 课程学习内容概览:

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
1. **VMware虚拟机** 1. **VMware虚拟机**
VMware 是一款虚拟化软件,可在物理计算机(宿主系统)上创建多个独立的虚拟计算机(虚拟机)。每个虚拟机可运行独立的操作系统(如 Windows、Linux、macOS 等并共享宿主硬件资源CPU、内存、存储等但彼此隔离、互不干扰。 VMware 是一款虚拟化软件,可在物理计算机(宿主系统)上创建多个独立的虚拟计算机(虚拟机)。每个虚拟机可运行独立的操作系统(如 Windows、Linux、macOS 等并共享宿主硬件资源CPU、内存、存储等但彼此隔离、互不干扰。

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# **1. Linux简介** # **1. Linux简介**
Linux最初是1991年由芬兰的Linus Torvalds发起目的是为了避开当时的类Unix的版权问题Linux从一开始就是开源的由网上组织松散的开发者协作完成并在1994年开始遵循GPL许可协议。 Linux最初是1991年由芬兰的Linus Torvalds发起目的是为了避开当时的类Unix的版权问题Linux从一开始就是开源的由网上组织松散的开发者协作完成并在1994年开始遵循GPL许可协议。

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# **文件互通** # **文件互通**
做编程开发经常需要将文件在不同的机器之间来回倒腾比如安装了vmware之后经常需要在宿主机Widndows和Ubuntu之间转移文件。 做编程开发经常需要将文件在不同的机器之间来回倒腾比如安装了vmware之后经常需要在宿主机Widndows和Ubuntu之间转移文件。

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# **1. 编辑器** # **1. 编辑器**
## **1.1 图形编辑器** ## **1.1 图形编辑器**

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# **1. 虚拟机VMware的网络配置** # **1. 虚拟机VMware的网络配置**
虚拟机的网络适配器的模式有两种: 虚拟机的网络适配器的模式有两种:

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# shell (壳) # shell (壳)
可以调用内核执行响应动作的用户指令或程序 可以调用内核执行响应动作的用户指令或程序

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 一、概述 # 一、概述
C 语言是一种通用的、 C 语言是一种通用的、

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 一、基本数据类型 # 一、基本数据类型
1. **字符型** 1. **字符型**

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 一、分支控制 # 一、分支控制
1. **二路分支** 1. **二路分支**

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 一、概述 # 一、概述
在C语言中函数指的是功能模块。一个典型的C语言程序就是由一个个的功能模块拼接起来的整体因此C语言也称模块化语言。 在C语言中函数指的是功能模块。一个典型的C语言程序就是由一个个的功能模块拼接起来的整体因此C语言也称模块化语言。

View File

@@ -1,6 +1,8 @@
--- ---
tags: tags:
- empty aliases:
aliases: empty type:
日期: 2026/1/23 status:
star: false
date:
--- ---

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# **1. 准备知识** # **1. 准备知识**
**1.1 内存地址** **1.1 内存地址**

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 一、数组与指针间的转换 # 一、数组与指针间的转换
1. **数组与指针混合运算时** 1. **数组与指针混合运算时**

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 一、C语言函数库 # 一、C语言函数库
- 概念在C语言发展过程中收录了很多经典的数据操作方法----函数将这些函数收录归纳汇总为开发人员方便使用的API接口函数如下图所示的各种操作接口库。 - 概念在C语言发展过程中收录了很多经典的数据操作方法----函数将这些函数收录归纳汇总为开发人员方便使用的API接口函数如下图所示的各种操作接口库。

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# **C语言程序内存布局** # **C语言程序内存布局**
任何一个程序正常运行都需要内存资源用来存放诸如变量、常量、函数代码等等。这些不同的内容所存储的内存区域是不同的且不同的区域有不同的特性。因此我们需要研究C语言进程的内存布局逐个了解不同内存区域的特性。 任何一个程序正常运行都需要内存资源用来存放诸如变量、常量、函数代码等等。这些不同的内容所存储的内存区域是不同的且不同的区域有不同的特性。因此我们需要研究C语言进程的内存布局逐个了解不同内存区域的特性。

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# 前导知识 # 前导知识
## GCC 编译一共分4个阶段**预处理、编译、汇编、链接** ## GCC 编译一共分4个阶段**预处理、编译、汇编、链接**

View File

@@ -1,7 +1,10 @@
--- ---
tags: tags:
- Linux aliases:
笔记类型: type:
status:
star: false
date:
--- ---
# 一些好用的Linux命令 # 一些好用的Linux命令
- source 用来重新加载配置文件 ^2b32fc - source 用来重新加载配置文件 ^2b32fc

8
Collection/未命名.md Normal file
View File

@@ -0,0 +1,8 @@
---
tags:
aliases:
type:
status:
star: false
date:
---

View File

@@ -1,10 +1,10 @@
--- ---
tags: tags:
- C语言
- Linux
aliases: aliases:
- 小知识 type:
日期: 2026/1/23 status:
star: false
date:
--- ---
- 字符类型数字转整形数字要 `-'0'` - 字符类型数字转整形数字要 `-'0'`
```c ```c

View File

@@ -1,3 +1,12 @@
---
aliases:
tags:
-
type:
status:
star: false
date:
---
# APlayer-Typecho-Plugin # APlayer-Typecho-Plugin
Typecho plugin for a beautiful html5 music player https://github.com/DIYgod/APlayer Typecho plugin for a beautiful html5 music player https://github.com/DIYgod/APlayer

View File

@@ -1,5 +1,11 @@
--- ---
笔记类型: aliases:
tags:
-
type:
status:
star: false
date:
--- ---
# 启用用户界面中的转码配置 # 启用用户界面中的转码配置
ND_ENABLETRANSCODINGCONFIG = true ND_ENABLETRANSCODINGCONFIG = true

View File

@@ -1,8 +1,9 @@
--- ---
tags: tags:
- clash aliases:
- 软路由 type:
aliases: empty status:
日期: 2026/4/11 star: false
date:
--- ---
# 等等再写 # 等等再写

View File

@@ -2,7 +2,7 @@
tags: tags:
- 日记 - 日记
- Diary - Diary
日期: 2026/1/19 date: 2026/1/19
aliases: aliases:
- 开学第一天 - 开学第一天
--- ---

View File

@@ -2,7 +2,6 @@
excalidraw-plugin: parsed excalidraw-plugin: parsed
tags: tags:
- excalidraw - excalidraw
笔记类型:
--- ---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' ==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'

View File

@@ -0,0 +1,63 @@
---
tags:
- empty
aliases: empty
type:
- Meta
status:
- 🌳 Evergreen
star: true
date: 2026/4/18
---
# Obsidian 笔记元数据管理规范Type 与 Status 系统
这篇文档详细定义了库中笔记的元数据Properties分类体系。通过 **Type类型**、**Status状态** 和 **Star星标** 三个维度的配合实现笔记从“捕获”到“内化”的全生命周期管理并为导航页HOME的自动化视图提供底层支持。
## 1. 核心维度定义
### A. Type (类型) —— 笔记的“身份”
Type 属性用于定义笔记的功能属性,决定了笔记存放在库中的性质。
| 属性值 | 定义 | 适用场景 |
|---|---|---|
| **Daily** | 时间轴记录 | 日记、随手记、每日打卡、热力图主数据。 |
| **Concept** | 知识原子 | 学习笔记、个人百科、内化的方法论。 |
| **Task** | 执行单元 | 项目计划、待办清单、具体任务进度追踪。 |
| **Source** | 外部输入 | 网页剪藏、书摘原文、论文、参考资料。 |
| **Meta** | 系统管理 | 模板、导航页、MOC、脚本、CSS 代码片段。 |
| **Archive** | 归档记录 | 已失效或已完成且不再活跃的笔记。 |
### B. Status (状态) —— 笔记的“生命周期”
Status 属性反映笔记的成熟度,帮助你识别哪些内容需要进一步加工。
* **🌱 Seedling (草稿)**status: seedling
* **含义**:刚创建,内容破碎,需要进一步整理。
* **🌿 Incubating (沉淀)**status: incubating
* **含义**:已进行初步梳理,加入了个人思考,正在不断丰富。
* **🌳 Evergreen (常青)**status: evergreen
* **含义**:逻辑自洽、排版精美。是你“第二大脑”中的精华资产。
* **💤 Archived (归档)**status: archived
* **含义**:任务已结束或知识已过时,仅供未来检索,不再显示在活跃视图中。
### C. Star (精华) —— 快速过滤
* **数据类型**:布尔值 (Boolean)
* **属性名**star: true / false
* **作用**:用于标记库中的“高光时刻”。它可以是任何类型的笔记,只要对你当下极其重要或你非常满意,就将其标记为 true。
## 2. 维度配合实战:仪表盘逻辑
通过这三个属性,你的 **HOME 导航页** 可以实现完全自动化:
* **追踪“待消化”的知识**
查询 Type: Source + Status: seedling。自动列出那些“收藏了但还没读”的笔记。
* **展示“核心项目”**
查询 Type: Task + Status: incubating + Star: true。在首页正中显示当前最重要的任务。
* **优化热力图**
在 Heatmap Tracker 脚本中过滤掉 Type: Meta。这样你修改导航页或模板的操作不会产生虚假的“活跃度”噪声。
## 3. 操作流程建议
1. **自动化录入**:在所有 Templater 模板中预设属性。例如,日记模板默认 type: Daily新笔记模板默认 status: seedling。
2. **定期“除草”**:每周通过导航页查看 status: seedling 的列表,将有价值的笔记升级为 incubating垃圾信息直接删除或归档。
3. **视觉区分**:在 Dataview 列表中,可以根据 star: true 为笔记标题添加 ⭐ 图标。
## 4. YAML 示例 (Properties)
```yaml
---
type: Concept
status: seedling
star: false
date: 2026-04-18
---
```

View File

@@ -5,7 +5,7 @@ tags:
aliases: aliases:
- 导航 - 导航
- home - home
日期: 2026/4/16 date: 2026/4/16
--- ---
## 准备将这个页面作为导航页,还没想好怎么做 ## 准备将这个页面作为导航页,还没想好怎么做
```dataviewjs ```dataviewjs

View File

@@ -1,8 +1,8 @@
--- ---
tags: tags:
- AI - AI
- 实验报告 - 实验报告
- school - school
--- ---

View File

@@ -1,7 +1,7 @@
--- ---
tags: tags:
- vivado - vivado
- school - school
--- ---
# Vivado使用乘法器、除法器IP核实现乘除取余仿真 # Vivado使用乘法器、除法器IP核实现乘除取余仿真

View File

@@ -1,7 +1,7 @@
--- ---
tags: tags:
- school - school
- 文献 - 文献
--- ---
# 十五篇 # 十五篇

View File

@@ -2,7 +2,18 @@
tags: tags:
- empty - empty
aliases: empty aliases: empty
笔记类型: type:
达到预期: false - Daily
日期: <%tp.date.now("YYYY/M/D") %> - Concept
- Task
- Source
- Meta
- Archive
status:
- 🌱 Seedling
- 🌿 Incubating
- 🌳 Evergreen
- 💤 Archived
star: false
date: <%tp.date.now("YYYY/M/D") %>
--- ---

View File

@@ -2,10 +2,13 @@
tags: tags:
- 日记 - 日记
- Diary - Diary
笔记类型: type:
达到预期: false - Daily
日期: <%tp.date.now("YYYY/M/D", 0, tp.file.title,"YYYY-MM-DD") %> status:
时间: <%tp.date.now("YYYY/M/D HH:mm") %> - 🌱 Seedling
star: false
date: <%tp.date.now("YYYY/M/D", 0, tp.file.title,"YYYY-MM-DD") %>
created: <%tp.date.now("YYYY/M/D HH:mm") %>
--- ---
# preface # preface

View File

@@ -3,7 +3,6 @@ tags:
- "#作业" - "#作业"
- C语言 - C语言
aliases: empty aliases: empty
日期: 2026/1/23
--- ---
1.定义`int num = 255`,分别以十进制(有符号)、无符号十进制、八进制(带 / 不带前缀)、十六进制(小写带 / 不带前缀、大写带 / 不带前缀) 格式输出; 1.定义`int num = 255`,分别以十进制(有符号)、无符号十进制、八进制(带 / 不带前缀)、十六进制(小写带 / 不带前缀、大写带 / 不带前缀) 格式输出;
```c ```c

View File

@@ -3,7 +3,6 @@ tags:
- 作业 - 作业
- C语言 - C语言
aliases: empty aliases: empty
日期: 2026/1/29
--- ---
**1.定义一个长度为10的数组并从键盘输入10个整数对数组进行赋值并实现下列功能** **1.定义一个长度为10的数组并从键盘输入10个整数对数组进行赋值并实现下列功能**

View File

@@ -1,3 +1,6 @@
---
{}
---
1. 这里写题目 1. 这里写题目
```c ```c
#include <stdio.h> #include <stdio.h>

View File

@@ -3,7 +3,6 @@ tags:
- 作业 - 作业
- C语言 - C语言
aliases: empty aliases: empty
日期: 2026/2/4
--- ---
# 2-4作业 # 2-4作业

View File

@@ -1,8 +1,7 @@
--- ---
excalidraw-plugin: parsed excalidraw-plugin: parsed
tags: [excalidraw] tags:
- excalidraw
--- ---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' ==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'