{
  "collections": {
    "blog": {
      "loader": {
        "name": "glob-loader"
      },
      "type": "content_layer"
    }
  },
  "pathMapper": {
    "stats": {
      "totalFiles": 284,
      "totalFolders": 39
    },
    "files": [
      {
        "fileId": "index",
        "relativePath": "index",
        "permalink": "/",
        "title": "欢迎来到 icepro 的 blog",
        "type": "content",
        "folderPath": "",
        "childrenFileIds": [],
        "forwardLinks": [
          "/archives/",
          "/knowledge/",
          "/card-box/moc/",
          "/game-developer/",
          "/2024/monorepo-best-practices/",
          "/blog/moc/",
          "/blog/comments/",
          "/blog/quartz-cache-refresh/",
          "/blog/bulletin-board-2024/",
          "/blog/license/",
          "/blog/speed/",
          "/blog/instructions-for-using-links/",
          "/friends/",
          "/blog/rss/"
        ],
        "backwardLinks": [],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/index.md",
        "originalFolderPath": "src/content/blog"
      },
      {
        "fileId": "目录索引",
        "relativePath": "目录索引",
        "permalink": "/explore/",
        "title": "目录索引",
        "type": "content",
        "folderPath": "",
        "childrenFileIds": [],
        "forwardLinks": [
          "/archives/",
          "/friends/",
          "/others/",
          "/knowledge/"
        ],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/目录索引.md",
        "originalFolderPath": "src/content/blog"
      },
      {
        "fileId": "archives",
        "relativePath": "archives",
        "permalink": "/archives/",
        "title": "归档 MOC",
        "type": "content",
        "folderPath": "",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/",
          "/explore/"
        ],
        "tags": [
          "MOC"
        ],
        "originalPath": "src/content/blog/archives/index.md",
        "originalFolderPath": "src/content/blog/archives"
      },
      {
        "fileId": "朋友圈/sleaf",
        "relativePath": "朋友圈/sleaf",
        "permalink": "/friends/sleaf/",
        "title": "Sleaf",
        "type": "content",
        "folderPath": "朋友圈",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2021/11/25/2022/2021-annual-report/",
          "/2023/vue-watch-bug-for-array-obj/",
          "/2024/obsidian-plugin/",
          "/link-rot/",
          "/code/vue/getCurrentInstance-get-null-after-mount-vue-app/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/Sleaf.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "朋友圈/kanae",
        "relativePath": "朋友圈/kanae",
        "permalink": "/friends/kanae/",
        "title": "Kanae",
        "type": "content",
        "folderPath": "朋友圈",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/blog/server-down/",
          "/thinking/another-gaming-community-disappears/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/Kanae.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "朋友圈/tinko",
        "relativePath": "朋友圈/tinko",
        "permalink": "/friends/tinko/",
        "title": "Tinko",
        "type": "content",
        "folderPath": "朋友圈",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/Tinko.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "朋友圈",
        "relativePath": "朋友圈",
        "permalink": "/friends/",
        "title": "朋友圈",
        "type": "content",
        "folderPath": "",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/",
          "/explore/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/index.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "朋友圈/xsw1m",
        "relativePath": "朋友圈/xsw1m",
        "permalink": "/friends/xsw1m/",
        "title": "Xsw1m",
        "type": "content",
        "folderPath": "朋友圈",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/blog/ai-rewrite-blog/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/Xsw1m.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "朋友圈/iceprosurface",
        "relativePath": "朋友圈/iceprosurface",
        "permalink": "/friends/iceprosurface/",
        "title": "iceprosurface",
        "type": "content",
        "folderPath": "朋友圈",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/iceprosurface.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "朋友圈/linuxdo",
        "relativePath": "朋友圈/linuxdo",
        "permalink": "/friends/linux-do/",
        "title": "LINUX DO",
        "type": "content",
        "folderPath": "朋友圈",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/linux.do.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "朋友圈/x3金",
        "relativePath": "朋友圈/x3金",
        "permalink": "/friends/jinx3/",
        "title": "x3金",
        "type": "content",
        "folderPath": "朋友圈",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2019/06/14/2019/xd-meal/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/朋友圈/x3金.md",
        "originalFolderPath": "src/content/blog/朋友圈"
      },
      {
        "fileId": "杂记",
        "relativePath": "杂记",
        "permalink": "/others/",
        "title": "杂记",
        "type": "content",
        "folderPath": "",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/explore/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/index.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/一些工具页面",
        "relativePath": "杂记/一些工具页面",
        "permalink": "/tools/some-tools/",
        "title": "一些工具页面",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/杂记/一些工具页面.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/为什么要这样记录笔记",
        "relativePath": "杂记/为什么要这样记录笔记",
        "permalink": "/blog/what-why-how/",
        "title": "为什么要这样记录笔记?",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [
          "/link-rot/"
        ],
        "backwardLinks": [
          "/thinking/another-gaming-community-disappears/"
        ],
        "tags": [
          "方法论",
          "思考"
        ],
        "originalPath": "src/content/blog/杂记/为什么要这样记录笔记.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/关于-mcbbs-永久关闭我们永远失去了一个不可替代的社区",
        "relativePath": "杂记/关于-mcbbs-永久关闭我们永远失去了一个不可替代的社区",
        "permalink": "/mcbbs-closure-loss/",
        "title": "关于 MCBBS 永久关闭：我们永远失去了一个不可替代的社区",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thought/thoughts-on-signature/",
          "/thinking/another-gaming-community-disappears/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/关于 MCBBS 永久关闭：我们永远失去了一个不可替代的社区.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/关于访问速度",
        "relativePath": "杂记/关于访问速度",
        "permalink": "/blog/speed/",
        "title": "关于访问速度",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/",
          "/blog/server-down/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/关于访问速度.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/关于链接和内容使用说明",
        "relativePath": "杂记/关于链接和内容使用说明",
        "permalink": "/blog/instructions-for-using-links/",
        "title": "关于链接和内容使用说明",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/关于链接和内容使用说明.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/关于评论系统",
        "relativePath": "杂记/关于评论系统",
        "permalink": "/blog/comments/",
        "title": "关于评论系统",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/",
          "/blog/dev/script/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/关于评论系统.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/在线编程工具",
        "relativePath": "杂记/在线编程工具",
        "permalink": "/misc/online-programming-tools/",
        "title": "在线编程工具",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/杂记/在线编程工具.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/留言板-2024",
        "relativePath": "杂记/留言板-2024",
        "permalink": "/blog/bulletin-board-2024/",
        "title": "留言板",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/留言板-2024.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/痛批终末地",
        "relativePath": "杂记/痛批终末地",
        "permalink": "/thought/critique-endfield/",
        "title": "痛批终末地",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/insight/endfield-not-satisfying/",
          "/card-library/case/endfield-paypal-incident/",
          "/card-box/insight/income-scissors-difference/",
          "/card-box/insight/gender-roles-and-class-alienation/"
        ],
        "backwardLinks": [],
        "tags": [
          "二游",
          "生活"
        ],
        "originalPath": "src/content/blog/杂记/痛批终末地.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/quartz-缓存刷新问题",
        "relativePath": "杂记/quartz-缓存刷新问题",
        "permalink": "/blog/quartz-cache-refresh/",
        "title": "quartz 缓存刷新问题",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/",
          "/blog/dev/quartz-plugin-script/"
        ],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/杂记/quartz 缓存刷新问题.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/相关协议",
        "relativePath": "杂记/相关协议",
        "permalink": "/blog/license/",
        "title": "相关协议",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/相关协议.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "杂记/署名之谈二三事",
        "relativePath": "杂记/署名之谈二三事",
        "permalink": "/thought/thoughts-on-signature/",
        "title": "署名之谈二三事",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [
          "/mcbbs-closure-loss/",
          "/thinking/another-gaming-community-disappears/",
          "/link-rot/",
          "/terminology/cc/"
        ],
        "backwardLinks": [],
        "tags": [
          "思考"
        ],
        "originalPath": "src/content/blog/杂记/署名之谈二三事.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "知识库",
        "relativePath": "知识库",
        "permalink": "/knowledge/",
        "title": "知识库入口",
        "type": "content",
        "folderPath": "",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/",
          "/explore/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/知识库/index.md",
        "originalFolderPath": "src/content/blog/知识库"
      },
      {
        "fileId": "杂记/十年之约",
        "relativePath": "杂记/十年之约",
        "permalink": "/blog/blog-forever/",
        "title": "十年之约",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/杂记/十年之约.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "知识库/javascript",
        "relativePath": "知识库/javascript",
        "permalink": "/knowledge-base/javascript/",
        "title": "javascript",
        "type": "content",
        "folderPath": "知识库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/知识库/javascript.md",
        "originalFolderPath": "src/content/blog/知识库"
      },
      {
        "fileId": "知识库/卡片盒_moc",
        "relativePath": "知识库/卡片盒_moc",
        "permalink": "/card-box/moc/",
        "title": "卢曼卡片盒 MOC",
        "type": "content",
        "folderPath": "知识库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-management/zettelkasten-method/",
          "/knowledge-management/zettelkasten-pros-cons/",
          "/knowledge-management/zettelkasten-in-ai-era/",
          "/card-box/insight/obsolescence-of-luhmann-numbering/",
          "/card-box/insight/the-disappearing-inbox/",
          "/card-box/insight/programming-paradigms-effect-on-ai/",
          "/card-box/idea/electromagnetic-cultivation-world/"
        ],
        "backwardLinks": [
          "/",
          "/card-box/insight/programming-paradigms-effect-on-ai/",
          "/knowledge-management/zettelkasten-method/"
        ],
        "tags": [
          "MOC",
          "知识管理",
          "卢曼"
        ],
        "originalPath": "src/content/blog/知识库/卡片盒_MOC.md",
        "originalFolderPath": "src/content/blog/知识库"
      },
      {
        "fileId": "知识库/方法论",
        "relativePath": "知识库/方法论",
        "permalink": "/methodology/",
        "title": "方法论",
        "type": "content",
        "folderPath": "知识库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2024/monorepo-best-practices/",
          "/2022/code-quality/",
          "/code/front-end/rules/",
          "/2022/scalable-code-maintenance/",
          "/thinking/lead-team-effectively/"
        ],
        "backwardLinks": [],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/方法论.md",
        "originalFolderPath": "src/content/blog/知识库"
      },
      {
        "fileId": "archives/2016/notification---来自html5的通知提醒功能",
        "relativePath": "archives/2016/notification---来自html5的通知提醒功能",
        "permalink": "/2016/12/08/2016/2016-12-08-web-notification/",
        "title": "Notification --来自html5的通知提醒功能",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2016/Notification --来自html5的通知提醒功能.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/angular-第三章-一个简单的购物车范例2",
        "relativePath": "archives/2016/angular-第三章-一个简单的购物车范例2",
        "permalink": "/2016/03/01/2016/2016-03-01-angular-3rd/",
        "title": "[angular.js]第三章 一个简单的购物车范例(2)",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/angular 第三章 一个简单的购物车范例(2).md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/fetch-api",
        "relativePath": "archives/2016/fetch-api",
        "permalink": "/2016/10/12/2016/2016-10-12-fetch-api/",
        "title": "fetch api",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/fetch api.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/icepro-对于-jquery-实现的理解",
        "relativePath": "archives/2016/icepro-对于-jquery-实现的理解",
        "permalink": "/2016/06/2016/2016-06-13-jquery/",
        "title": "icepro对于jquery($)实现的理解",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/icepro 对于 jquery($) 实现的理解.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/iceplayer-个人音乐播放器",
        "relativePath": "archives/2016/iceplayer-个人音乐播放器",
        "permalink": "/2016/05/01/2016/2016-05-01-iceplayer-1st/",
        "title": "第一篇 iceplayer 个人音乐播放器",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2016/iceplayer 个人音乐播放器.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "杂记/icepro-博客开发故事",
        "relativePath": "杂记/icepro-博客开发故事",
        "permalink": "/blog/moc/",
        "title": "icepro 博客开发故事",
        "type": "content",
        "folderPath": "杂记",
        "childrenFileIds": [],
        "forwardLinks": [
          "/blog/font-load/",
          "/blog/dev/script/",
          "/blog/quartz-graph-pref/",
          "/blog/dev/quartz-plugin-script/"
        ],
        "backwardLinks": [
          "/",
          "/blog/font-load/"
        ],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/杂记/icepro 博客开发故事.md",
        "originalFolderPath": "src/content/blog/杂记"
      },
      {
        "fileId": "archives/2016/angular-第一章-基础知识篇",
        "relativePath": "archives/2016/angular-第一章-基础知识篇",
        "permalink": "/2016/02/26/2016/2016-02-26-angular-1st/",
        "title": "[angular.js]第一章 基础知识篇",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/angular 第一章 基础知识篇.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/angular-第四章-一个简单的购物车范例3",
        "relativePath": "archives/2016/angular-第四章-一个简单的购物车范例3",
        "permalink": "/2016/04/16/2016/2016-04-16-angular-4th/",
        "title": "[angular.js]第四章 一个简单的购物车范例(3)",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/angular 第四章 一个简单的购物车范例(3).md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/angular-第二章-一个简单的购物车范例1",
        "relativePath": "archives/2016/angular-第二章-一个简单的购物车范例1",
        "permalink": "/2016/02/27/2016/2016-02-27-angular-2nd/",
        "title": "[angular.js]第二章 一个简单的购物车范例(1)",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/angular 第二章 一个简单的购物车范例(1).md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/js-中的-debugger",
        "relativePath": "archives/2016/js-中的-debugger",
        "permalink": "/2016/10/10/2016/2016-10-10-js-debugger/",
        "title": "js 中的 debugger",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/js 中的 debugger.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/lrc控制器",
        "relativePath": "archives/2016/lrc控制器",
        "permalink": "/2016/03/18/2016/2016-03-18-lrc-cont/",
        "title": "lrc控制器试验",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/lrc控制器.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/media的使用",
        "relativePath": "archives/2016/media的使用",
        "permalink": "/2016/03/15/2016/2016-03-15-media-control/",
        "title": "media的使用",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/media的使用.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/objectfreeze--const",
        "relativePath": "archives/2016/objectfreeze--const",
        "permalink": "/2016/12/07/2016/2016-12-07-object-freeze/",
        "title": "object.freeze & const",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/object.freeze & const.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/select-联动",
        "relativePath": "archives/2016/select-联动",
        "permalink": "/2016/08/10/2016/2016-08-10-formlinkage/",
        "title": "select 联动",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2016/select 联动.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/什么是-polyfill",
        "relativePath": "archives/2016/什么是-polyfill",
        "permalink": "/2016/10/10/2016/2016-10-10-what-is-polyfill/",
        "title": "什么是 polyfill",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/js-new-set-operations-api/"
        ],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/什么是 polyfill.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/原型方法对象方法和类方法",
        "relativePath": "archives/2016/原型方法对象方法和类方法",
        "permalink": "/2016/03/02/2016/2016-03-02-js-iife/",
        "title": "原型方法，对象方法和类方法的个人整理",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/原型方法，对象方法和类方法.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/如何使用-gulp-来构建你的项目",
        "relativePath": "archives/2016/如何使用-gulp-来构建你的项目",
        "permalink": "/2016/06/23/2016/2016-06-23-how-to-use-gulp/",
        "title": "如何使用 gulp 来构建你的项目",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编译",
          "node"
        ],
        "originalPath": "src/content/blog/archives/2016/如何使用 gulp 来构建你的项目.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/如何让mac挂在ntfs的u盘",
        "relativePath": "archives/2016/如何让mac挂在ntfs的u盘",
        "permalink": "/2016/05/17/2016/2016-05-17-mac-ntfs/",
        "title": "如何让mac挂在ntfs的u盘",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "脚本"
        ],
        "originalPath": "src/content/blog/archives/2016/如何让mac挂在ntfs的u盘.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/标签栏实现",
        "relativePath": "archives/2016/标签栏实现",
        "permalink": "/2016/03/25/2016/2016-03-25-tab-js/",
        "title": "一个简单的可左右移动的标签栏",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/标签栏实现.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/模板字符串模板字面量的使用",
        "relativePath": "archives/2016/模板字符串模板字面量的使用",
        "permalink": "/2016/10/01/2016/2016-10-01-template-literals/",
        "title": "模板字符串(模板字面量)的使用",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2016/模板字符串(模板字面量)的使用.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/直角三角形的路径题",
        "relativePath": "archives/2016/直角三角形的路径题",
        "permalink": "/2016/10/11/2016/2016-10-11-are-recursive-slash-question/",
        "title": "直角三角形的路径题",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript",
          "算法"
        ],
        "originalPath": "src/content/blog/archives/2016/直角三角形的路径题.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/第一章基础的node教学",
        "relativePath": "archives/2016/第一章基础的node教学",
        "permalink": "/2016/05/29/2016/2016-05-29-base-of-node-1/",
        "title": "[nodejs]第一章基础的node教学",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "node"
        ],
        "originalPath": "src/content/blog/archives/2016/第一章基础的node教学.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/基于python制作上海海洋大学绩点计算器",
        "relativePath": "archives/2016/基于python制作上海海洋大学绩点计算器",
        "permalink": "/2016/04/04/2016-04-04-base-on-python-cal/",
        "title": "基于python制作上海海洋大学绩点计算器",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/archives/2016/基于python制作上海海洋大学绩点计算器.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/如何将-node-程序和-nginx-结合",
        "relativePath": "archives/2016/如何将-node-程序和-nginx-结合",
        "permalink": "/2016/06/06/node-nginx/",
        "title": "如何将node程序和nginx结合",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "node",
          "后端"
        ],
        "originalPath": "src/content/blog/archives/2016/如何将 node 程序和 nginx 结合.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2016/实现-tinkphp-和-nginx-的动静分离不使用-pathinfo",
        "relativePath": "archives/2016/实现-tinkphp-和-nginx-的动静分离不使用-pathinfo",
        "permalink": "/2016/06/13/2016/2016-06-13-use-tp-on-niginx/",
        "title": "实现tinkphp和nginx的动静分离（不使用pathinfo）",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "后端",
          "php"
        ],
        "originalPath": "src/content/blog/archives/2016/实现 tinkphp 和 nginx 的动静分离（不使用 pathinfo）.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2017/从零开始编写属于你的mvc框架1",
        "relativePath": "archives/2017/从零开始编写属于你的mvc框架1",
        "permalink": "/2017/04/16/2017/2017-04-16-how-to-implement-a-simple-mvc/",
        "title": "从零开始编写属于你的mvc框架[1]",
        "type": "content",
        "folderPath": "archives/2017",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2017/04/15/2017/2017-04-15-how-to-implement-a-simple-mvc/",
          "/code/front-end/vdom/",
          "/knowledge-base/programming/algorithms/depth-first-algorithm/",
          "/knowledge-base/programming/algorithms/breadth-first-algorithm/"
        ],
        "backwardLinks": [
          "/2017/05/07/2017/2017-05-7-how-to-implement-a-simple-mvc-2/"
        ],
        "tags": [
          "javascript",
          "框架"
        ],
        "originalPath": "src/content/blog/archives/2017/从零开始编写属于你的mvc框架1.md",
        "originalFolderPath": "src/content/blog/archives/2017"
      },
      {
        "fileId": "archives/2016/换了一台新电脑",
        "relativePath": "archives/2016/换了一台新电脑",
        "permalink": "/2016/05/16/2016/2016-05-16-mac-use/",
        "title": "换了一台新电脑",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/archives/2016/换了一台新电脑.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2017/从零开始编写属于你的mvc框架2",
        "relativePath": "archives/2017/从零开始编写属于你的mvc框架2",
        "permalink": "/2017/05/07/2017/2017-05-7-how-to-implement-a-simple-mvc-2/",
        "title": "从零开始编写属于你的mvc框架[2]",
        "type": "content",
        "folderPath": "archives/2017",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2017/04/16/2017/2017-04-16-how-to-implement-a-simple-mvc/",
          "/code/front-end/vdom/"
        ],
        "backwardLinks": [
          "/2017/05/13/2017/2017-05-13-how-to-implement-a-simple-mvc-3/"
        ],
        "tags": [
          "javascript",
          "框架"
        ],
        "originalPath": "src/content/blog/archives/2017/从零开始编写属于你的mvc框架2.md",
        "originalFolderPath": "src/content/blog/archives/2017"
      },
      {
        "fileId": "archives/2017/从零开始编写属于你的前端mvc框架3",
        "relativePath": "archives/2017/从零开始编写属于你的前端mvc框架3",
        "permalink": "/2017/05/13/2017/2017-05-13-how-to-implement-a-simple-mvc-3/",
        "title": "从零开始编写属于你的前端mvc框架[3]",
        "type": "content",
        "folderPath": "archives/2017",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2017/05/07/2017/2017-05-7-how-to-implement-a-simple-mvc-2/"
        ],
        "backwardLinks": [
          "/2017/05/14/2017/2017-05-14-how-to-implement-a-simple-mvc-4/"
        ],
        "tags": [
          "javascript",
          "框架"
        ],
        "originalPath": "src/content/blog/archives/2017/从零开始编写属于你的前端mvc框架3.md",
        "originalFolderPath": "src/content/blog/archives/2017"
      },
      {
        "fileId": "archives/2017/从零开始编写属于你的前端mvc框架4",
        "relativePath": "archives/2017/从零开始编写属于你的前端mvc框架4",
        "permalink": "/2017/05/14/2017/2017-05-14-how-to-implement-a-simple-mvc-4/",
        "title": "从零开始编写属于你的前端mvc框架[4]",
        "type": "content",
        "folderPath": "archives/2017",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2017/05/13/2017/2017-05-13-how-to-implement-a-simple-mvc-3/",
          "/code/front-end/vdom/"
        ],
        "backwardLinks": [],
        "tags": [
          "javascript",
          "框架"
        ],
        "originalPath": "src/content/blog/archives/2017/从零开始编写属于你的前端mvc框架4.md",
        "originalFolderPath": "src/content/blog/archives/2017"
      },
      {
        "fileId": "archives/2017/如何从零开始编写一个简单的mvc框架",
        "relativePath": "archives/2017/如何从零开始编写一个简单的mvc框架",
        "permalink": "/2017/04/15/2017/2017-04-15-how-to-implement-a-simple-mvc/",
        "title": "如何从零开始编写一个简单的mvc框架[0]",
        "type": "content",
        "folderPath": "archives/2017",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2017/04/16/2017/2017-04-16-how-to-implement-a-simple-mvc/"
        ],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2017/如何从零开始编写一个简单的mvc框架.md",
        "originalFolderPath": "src/content/blog/archives/2017"
      },
      {
        "fileId": "archives/2018/invalid-date",
        "relativePath": "archives/2018/invalid-date",
        "permalink": "/2018/04/18/2018/Invalid-Date/",
        "title": "safari/IE Invalid Date 问题",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript",
          "疑难杂症"
        ],
        "originalPath": "src/content/blog/archives/2018/Invalid-Date.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2018/centos-6-配置安装-python-27",
        "relativePath": "archives/2018/centos-6-配置安装-python-27",
        "permalink": "/2018/04/17/2018/ss-on-centos6/",
        "title": "centos 6 配置安装 python 2.7",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "服务器"
        ],
        "originalPath": "src/content/blog/archives/2018/centos 6 配置安装 python 2.7.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2018/ckeditor和vue联合踩坑",
        "relativePath": "archives/2018/ckeditor和vue联合踩坑",
        "permalink": "/2018/01/18/2018/ckeditor/",
        "title": "ckeditor和vue联合踩坑",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "vue",
          "前端",
          "富文本编辑器"
        ],
        "originalPath": "src/content/blog/archives/2018/ckeditor和vue联合踩坑.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2016/octopress-基础指引",
        "relativePath": "archives/2016/octopress-基础指引",
        "permalink": "/2016/02/27/2016/2016-02-27-octopress-base/",
        "title": "[Octopress]基础指引",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/archives/2016/Octopress 基础指引.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2018/压力测试",
        "relativePath": "archives/2018/压力测试",
        "permalink": "/2018/03/24/2018/stress-testing/",
        "title": "压力测试",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "测试"
        ],
        "originalPath": "src/content/blog/archives/2018/压力测试.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2018/在-markdown-中一键上传图片",
        "relativePath": "archives/2018/在-markdown-中一键上传图片",
        "permalink": "/2018/04/08/2018/qiniu-picture-clould/",
        "title": "在 markdown 中一键上传图片",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/archives/2018/在 markdown 中一键上传图片.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2016/部署你的-octopress-到-vps-上",
        "relativePath": "archives/2016/部署你的-octopress-到-vps-上",
        "permalink": "/2016/05/23/2016/2016-05-23-octopress-to-new-vps/",
        "title": "部署你的octopress到vps上",
        "type": "content",
        "folderPath": "archives/2016",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "服务器"
        ],
        "originalPath": "src/content/blog/archives/2016/部署你的 octopress 到 vps 上.md",
        "originalFolderPath": "src/content/blog/archives/2016"
      },
      {
        "fileId": "archives/2018/用户自定义icon的纯色显示",
        "relativePath": "archives/2018/用户自定义icon的纯色显示",
        "permalink": "/2018/01/21/2018/custom-icon/",
        "title": "用户自定义icon的纯色显示",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "工具",
          "vue"
        ],
        "originalPath": "src/content/blog/archives/2018/用户自定义icon的纯色显示.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2018/隐式转换的的部分奥秘-valueoftosring",
        "relativePath": "archives/2018/隐式转换的的部分奥秘-valueoftosring",
        "permalink": "/2018/09/18/2018/valueOf-and-toString/",
        "title": "隐式转换的的部分奥秘-valueOf&toSring",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2018/隐式转换的的部分奥秘-valueOf&toSring.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2019/mc-服务器更新相关",
        "relativePath": "archives/2019/mc-服务器更新相关",
        "permalink": "/2019/06/30/2019/mc/",
        "title": "MC 服务器更新相关",
        "type": "content",
        "folderPath": "archives/2019",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thinking/another-gaming-community-disappears/"
        ],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/archives/2019/MC 服务器更新相关.md",
        "originalFolderPath": "src/content/blog/archives/2019"
      },
      {
        "fileId": "archives/2019/safari的带二维码的图片无法下载",
        "relativePath": "archives/2019/safari的带二维码的图片无法下载",
        "permalink": "/2019/03/28/2019/download-fail-with-qrcode-on-safari/",
        "title": "safari的带二维码的图片无法下载",
        "type": "content",
        "folderPath": "archives/2019",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2019/safari的带二维码的图片无法下载.md",
        "originalFolderPath": "src/content/blog/archives/2019"
      },
      {
        "fileId": "archives/2019/workbox-使用指北",
        "relativePath": "archives/2019/workbox-使用指北",
        "permalink": "/2019/03/27/2019/guide-of-workbox/",
        "title": "workbox 使用指北",
        "type": "content",
        "folderPath": "archives/2019",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2019/workbox 使用指北.md",
        "originalFolderPath": "src/content/blog/archives/2019"
      },
      {
        "fileId": "archives/2019/几个不常用-web-api-整理",
        "relativePath": "archives/2019/几个不常用-web-api-整理",
        "permalink": "/2019/06/12/2019/seldom-web-api/",
        "title": "几个不常用 web api 整理",
        "type": "content",
        "folderPath": "archives/2019",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2019/几个不常用 web api 整理.md",
        "originalFolderPath": "src/content/blog/archives/2019"
      },
      {
        "fileId": "archives/2019/选饭问卷系统介绍",
        "relativePath": "archives/2019/选饭问卷系统介绍",
        "permalink": "/2019/06/14/2019/xd-meal/",
        "title": "选饭问卷系统介绍",
        "type": "content",
        "folderPath": "archives/2019",
        "childrenFileIds": [],
        "forwardLinks": [
          "/friends/jinx3/"
        ],
        "backwardLinks": [],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/archives/2019/选饭问卷系统介绍.md",
        "originalFolderPath": "src/content/blog/archives/2019"
      },
      {
        "fileId": "archives/2020/indexdb-初用解析--dexie",
        "relativePath": "archives/2020/indexdb-初用解析--dexie",
        "permalink": "/2020/07/04/2020/dexiejs/",
        "title": "IndexDB 初用解析 & Dexie",
        "type": "content",
        "folderPath": "archives/2020",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/web-frontend/discuss-websql-and-sqlite-wasm/"
        ],
        "tags": [
          "javascript",
          "数据库"
        ],
        "originalPath": "src/content/blog/archives/2020/IndexDB 初用解析 & Dexie.md",
        "originalFolderPath": "src/content/blog/archives/2020"
      },
      {
        "fileId": "archives/2020/url-地址栏的长度上限",
        "relativePath": "archives/2020/url-地址栏的长度上限",
        "permalink": "/2020/05/06/2020/max-length-of-url/",
        "title": "url 地址栏的长度上限",
        "type": "content",
        "folderPath": "archives/2020",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/link-rot/"
        ],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2020/url 地址栏的长度上限.md",
        "originalFolderPath": "src/content/blog/archives/2020"
      },
      {
        "fileId": "archives/2018/如何让sass自动化的载入-2x-图片",
        "relativePath": "archives/2018/如何让sass自动化的载入-2x-图片",
        "permalink": "/2018/09/26/2018/auto-bg-with-sass/",
        "title": "如何让sass自动化的载入 2x 图片",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "css"
        ],
        "originalPath": "src/content/blog/archives/2018/如何让sass自动化的载入 2x 图片.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2018/如何避免hover的背景图片在首次点击时出现闪烁",
        "relativePath": "archives/2018/如何避免hover的背景图片在首次点击时出现闪烁",
        "permalink": "/2018/09/27/2018/avoid-flash-on-hovered-background/",
        "title": "如何避免 hover 的背景图片在首次点击时出现闪烁",
        "type": "content",
        "folderPath": "archives/2018",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端",
          "疑难杂症",
          "css"
        ],
        "originalPath": "src/content/blog/archives/2018/如何避免hover的背景图片在首次点击时出现闪烁.md",
        "originalFolderPath": "src/content/blog/archives/2018"
      },
      {
        "fileId": "archives/2020/记一些常用的小脚本",
        "relativePath": "archives/2020/记一些常用的小脚本",
        "permalink": "/2020/03/08/2020/normal-script/",
        "title": "记一些常用的小脚本",
        "type": "content",
        "folderPath": "archives/2020",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "脚本"
        ],
        "originalPath": "src/content/blog/archives/2020/记一些常用的小脚本.md",
        "originalFolderPath": "src/content/blog/archives/2020"
      },
      {
        "fileId": "archives/2021/notion-blog",
        "relativePath": "archives/2021/notion-blog",
        "permalink": "/2021/11/14/2021/notion-blog/",
        "title": "notion blog",
        "type": "content",
        "folderPath": "archives/2021",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/archives/2021/notion-blog.md",
        "originalFolderPath": "src/content/blog/archives/2021"
      },
      {
        "fileId": "archives/2022/2021年年度总结",
        "relativePath": "archives/2022/2021年年度总结",
        "permalink": "/2021/11/25/2022/2021-annual-report/",
        "title": "2021年年度总结",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/interface-definition-language/",
          "/knowledge-base/programming/api-query-language/",
          "/friends/sleaf/"
        ],
        "backwardLinks": [
          "/code/openapi-based-api-development-toolchain/"
        ],
        "tags": [
          "生活"
        ],
        "originalPath": "src/content/blog/archives/2022/2021年年度总结.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/js-实现流程任务执行",
        "relativePath": "archives/2022/js-实现流程任务执行",
        "permalink": "/2022/js-job-runner/",
        "title": "js 实现流程任务执行",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2022/js 实现流程任务执行.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/lunar-vim",
        "relativePath": "archives/2022/lunar-vim",
        "permalink": "/2022/02/08/2022/lunar-vim/",
        "title": "现代 vim 编辑器指北",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编辑器"
        ],
        "originalPath": "src/content/blog/archives/2022/lunar-vim.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/volar更新正式版本",
        "relativePath": "archives/2022/volar更新正式版本",
        "permalink": "/2022/volar-1.0/",
        "title": "volar更新正式版本！",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "vue",
          "编辑器",
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2022/volar更新正式版本！.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/vue27-升级指南",
        "relativePath": "archives/2022/vue27-升级指南",
        "permalink": "/2022/vue-2.7-upgrade-guide/",
        "title": "vue2.7 升级指南",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "vue",
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2022/vue2.7 升级指南.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/vscode-vim-配置",
        "relativePath": "archives/2022/vscode-vim-配置",
        "permalink": "/2022/vscode-vim-config/",
        "title": "vscode vim 配置",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编辑器"
        ],
        "originalPath": "src/content/blog/archives/2022/vscode vim 配置.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/webpack5-资源处理上的小差异",
        "relativePath": "archives/2022/webpack5-资源处理上的小差异",
        "permalink": "/2022/wepack5-asset-diff/",
        "title": "webpack5 资源处理上的小差异",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编译",
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2022/webpack5 资源处理上的小差异.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2020/如何在-webview-中调用-javascript",
        "relativePath": "archives/2020/如何在-webview-中调用-javascript",
        "permalink": "/2020/05/04/2020/call-js-for-android/",
        "title": "如何在 webview 中调用 javascript",
        "type": "content",
        "folderPath": "archives/2020",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript",
          "android"
        ],
        "originalPath": "src/content/blog/archives/2020/如何在 webview 中调用 javascript.md",
        "originalFolderPath": "src/content/blog/archives/2020"
      },
      {
        "fileId": "archives/2020/通过-webview-传输图片给-android",
        "relativePath": "archives/2020/通过-webview-传输图片给-android",
        "permalink": "/2020/05/05/2020/pass-image-to-android/",
        "title": "通过 webview 传输图片给 android",
        "type": "content",
        "folderPath": "archives/2020",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript",
          "android"
        ],
        "originalPath": "src/content/blog/archives/2020/通过 webview 传输图片给 android.md",
        "originalFolderPath": "src/content/blog/archives/2020"
      },
      {
        "fileId": "archives/2022/使用-esbuild-略微的提升一下老项目的构建体验",
        "relativePath": "archives/2022/使用-esbuild-略微的提升一下老项目的构建体验",
        "permalink": "/2022/esbuild-speed-up-project/",
        "title": "使用 esbuild 略微的提升一下老项目的构建体验",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编译",
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2022/使用 esbuild 略微的提升一下老项目的构建体验.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/基于-decorators-的-ant-design-vue-表单验证声明优化思路",
        "relativePath": "archives/2022/基于-decorators-的-ant-design-vue-表单验证声明优化思路",
        "permalink": "/2022/05/19/2022/class-validator/",
        "title": "基于 decorators 的 ant-design-vue 表单验证声明优化思路",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/tc39/"
        ],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/archives/2022/基于 decorators 的 ant-design-vue 表单验证声明优化思路.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/前端大数字精度丢失问题",
        "relativePath": "archives/2022/前端大数字精度丢失问题",
        "permalink": "/2022/js-bigint-error/",
        "title": "前端大数字精度丢失问题",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "javascript",
          "疑难杂症"
        ],
        "originalPath": "src/content/blog/archives/2022/前端大数字精度丢失问题.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/斐波那契数列算法时间复杂度",
        "relativePath": "archives/2022/斐波那契数列算法时间复杂度",
        "permalink": "/2022/fibonacci/",
        "title": "斐波那契数列算法时间复杂度",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/algorithms/time-complexity/",
          "/knowledge-base/programming/algorithms/algorithms/"
        ],
        "backwardLinks": [],
        "tags": [
          "算法"
        ],
        "originalPath": "src/content/blog/archives/2022/斐波那契数列算法时间复杂度.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2022/有史以来最好用的-markdown-编辑器--obsidian",
        "relativePath": "archives/2022/有史以来最好用的-markdown-编辑器--obsidian",
        "permalink": "/2022/obsidian/",
        "title": "有史以来最好用的 markdown 编辑器 —— obsidian",
        "type": "content",
        "folderPath": "archives/2022",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "生产力",
          "编辑器"
        ],
        "originalPath": "src/content/blog/archives/2022/有史以来最好用的 markdown 编辑器 —— obsidian.md",
        "originalFolderPath": "src/content/blog/archives/2022"
      },
      {
        "fileId": "archives/2023/vue2712中使用-watch-观察数组对象将会触发多次",
        "relativePath": "archives/2023/vue2712中使用-watch-观察数组对象将会触发多次",
        "permalink": "/2023/vue-watch-bug-for-array-obj/",
        "title": "vue2.7.12中使用 watch 观察数组对象将会触发多次",
        "type": "content",
        "folderPath": "archives/2023",
        "childrenFileIds": [],
        "forwardLinks": [
          "/friends/sleaf/"
        ],
        "backwardLinks": [],
        "tags": [
          "vue",
          "疑难杂症"
        ],
        "originalPath": "src/content/blog/archives/2023/vue2.7.12中使用 watch 观察数组对象将会触发多次.md",
        "originalFolderPath": "src/content/blog/archives/2023"
      },
      {
        "fileId": "archives/2024/mono-项目最佳实践指南",
        "relativePath": "archives/2024/mono-项目最佳实践指南",
        "permalink": "/2024/monorepo-best-practices/",
        "title": "mono 项目最佳实践指南",
        "type": "content",
        "folderPath": "archives/2024",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/single-source-of-truth/",
          "/terminology/monorepo/",
          "/code/test/auto/",
          "/code/ssot/",
          "/code/diamond-dependency/",
          "/code/dependency-hell/",
          "/code/trunk-based-development/",
          "/terminology/polyrepo/",
          "/code/conway-Law/"
        ],
        "backwardLinks": [
          "/",
          "/methodology/",
          "/ci-cd/gitlab-downstream-trigger-pipeline/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/archives/2024/mono 项目最佳实践指南.md",
        "originalFolderPath": "src/content/blog/archives/2024"
      },
      {
        "fileId": "杂记/博客开发与维护/rss-订阅",
        "relativePath": "杂记/博客开发与维护/rss-订阅",
        "permalink": "/blog/rss/",
        "title": "RSS 订阅说明",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/博客开发与维护/RSS 订阅.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/quartz关系图谱优化",
        "relativePath": "杂记/博客开发与维护/quartz关系图谱优化",
        "permalink": "/blog/quartz-graph-pref/",
        "title": "quartz 关系图谱优化",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/blog/moc/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/博客开发与维护/quartz关系图谱优化.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/quartz插件加载更多功能",
        "relativePath": "杂记/博客开发与维护/quartz插件加载更多功能",
        "permalink": "/blog/dev/quartz-plugin-script/",
        "title": "quartz插件加载更多功能",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [
          "/blog/quartz-cache-refresh/"
        ],
        "backwardLinks": [
          "/blog/moc/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/博客开发与维护/quartz插件加载更多功能.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/为-quartz-添加额外-shikijs-transform",
        "relativePath": "杂记/博客开发与维护/为-quartz-添加额外-shikijs-transform",
        "permalink": "/blog/quartz-shikijs-transform/",
        "title": "为 quartz 添加额外 shikijs transform",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/杂记/博客开发与维护/为 quartz 添加额外 shikijs transform.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/动态脚本加载",
        "relativePath": "杂记/博客开发与维护/动态脚本加载",
        "permalink": "/blog/dev/script/",
        "title": "quartz中使用动态脚本加载",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [
          "/blog/comments/"
        ],
        "backwardLinks": [
          "/blog/moc/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/杂记/博客开发与维护/动态脚本加载.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/我的云服务器被烧了",
        "relativePath": "杂记/博客开发与维护/我的云服务器被烧了",
        "permalink": "/blog/server-down/",
        "title": "我的云服务器被烧了",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [
          "/friends/kanae/",
          "/blog/speed/",
          "/terminology/rule-of-backup-3-2-1/"
        ],
        "backwardLinks": [
          "/tool/free-serverless/"
        ],
        "tags": [
          "运维"
        ],
        "originalPath": "src/content/blog/杂记/博客开发与维护/我的云服务器被烧了.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/我让ai重写了一遍博客",
        "relativePath": "杂记/博客开发与维护/我让ai重写了一遍博客",
        "permalink": "/blog/ai-rewrite-blog/",
        "title": "我让 AI 重写了一遍博客",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge/vibe-coding/",
          "/friends/xsw1m/"
        ],
        "backwardLinks": [],
        "tags": [
          "博客开发",
          "AI"
        ],
        "originalPath": "src/content/blog/杂记/博客开发与维护/我让AI重写了一遍博客.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/服务器配置迁移记录",
        "relativePath": "杂记/博客开发与维护/服务器配置迁移记录",
        "permalink": "/blog/server-migration/",
        "title": "服务器配置迁移记录",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/infrastructure-as-code/"
        ],
        "backwardLinks": [],
        "tags": [
          "运维"
        ],
        "originalPath": "src/content/blog/杂记/博客开发与维护/服务器配置迁移记录.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/博客开发与维护/重新谈谈字体加载",
        "relativePath": "杂记/博客开发与维护/重新谈谈字体加载",
        "permalink": "/blog/font-load/",
        "title": "重新谈谈字体加载",
        "type": "content",
        "folderPath": "杂记/博客开发与维护",
        "childrenFileIds": [],
        "forwardLinks": [
          "/blog/moc/"
        ],
        "backwardLinks": [
          "/blog/moc/"
        ],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/杂记/博客开发与维护/重新谈谈字体加载.md",
        "originalFolderPath": "src/content/blog/杂记/博客开发与维护"
      },
      {
        "fileId": "杂记/实验室/测试加密",
        "relativePath": "杂记/实验室/测试加密",
        "permalink": "/test/encryption/",
        "title": "测试加密文档",
        "type": "content",
        "folderPath": "杂记/实验室",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/杂记/实验室/测试加密.md",
        "originalFolderPath": "src/content/blog/杂记/实验室"
      },
      {
        "fileId": "知识库/书籍/党委会的工作方法",
        "relativePath": "知识库/书籍/党委会的工作方法",
        "permalink": "/books/chinese-mao-19490313/",
        "title": "党委会的工作方法",
        "type": "content",
        "folderPath": "知识库/书籍",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thinking/lead-team-effectively/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/书籍/党委会的工作方法.md",
        "originalFolderPath": "src/content/blog/知识库/书籍"
      },
      {
        "fileId": "知识库/书籍/游戏设计模式",
        "relativePath": "知识库/书籍/游戏设计模式",
        "permalink": "/knowledge-base/books/game-design-patterns/",
        "title": "游戏设计模式",
        "type": "content",
        "folderPath": "知识库/书籍",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "游戏开发",
          "设计模式"
        ],
        "originalPath": "src/content/blog/知识库/书籍/游戏设计模式.md",
        "originalFolderPath": "src/content/blog/知识库/书籍"
      },
      {
        "fileId": "知识库/卡片库/case_anthropic降价风波与ai定价权悖论",
        "relativePath": "知识库/卡片库/case_anthropic降价风波与ai定价权悖论",
        "permalink": "/card-library/case/anthropic-pricing-paradox/",
        "title": "Anthropic 降价风波与 AI 企业的定价权悖论",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/insight/ai-pricing-power-paradox/"
        ],
        "backwardLinks": [
          "/card-library/insight/ai-pricing-power-paradox/"
        ],
        "tags": [
          "商业案例",
          "AI 行业",
          "开源",
          "定价权"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_Anthropic降价风波与AI定价权悖论.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/case_openclaw与ai社区工具的高速迭代验证",
        "relativePath": "知识库/卡片库/case_openclaw与ai社区工具的高速迭代验证",
        "permalink": "/card-library/case/openclaw-community-iteration/",
        "title": "OpenClaw 与 AI 社区工具的高速迭代验证",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-library/insight/ai-idea-depreciation/",
          "/card-library/insight/ai-era-builders-and-orchestrated/"
        ],
        "tags": [
          "AI",
          "案例分析"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_OpenClaw与AI社区工具的高速迭代验证.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/case_spacex与航天验证哲学的反转",
        "relativePath": "知识库/卡片库/case_spacex与航天验证哲学的反转",
        "permalink": "/card-library/case/spacex-validation-philosophy/",
        "title": "SpaceX 与航天验证哲学的反转",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-library/insight/ai-era-builders-and-orchestrated/"
        ],
        "tags": [
          "商业案例",
          "方法论",
          "航天工程",
          "护城河"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_SpaceX与航天验证哲学的反转.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/case_人类计算员的消亡与组织中空化",
        "relativePath": "知识库/卡片库/case_人类计算员的消亡与组织中空化",
        "permalink": "/card-library/case/human-computers-hollowing-out/",
        "title": "人类计算员的消亡与组织中空化",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-library/insight/ai-era-builders-and-orchestrated/"
        ],
        "tags": [
          "历史案例",
          "组织效能",
          "职业重塑"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_人类计算员的消亡与组织中空化.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/case_小猫补光灯与ai手搓应用的爆发",
        "relativePath": "知识库/卡片库/case_小猫补光灯与ai手搓应用的爆发",
        "permalink": "/card-library/case/kitten-fill-light-ai-app-boom/",
        "title": "小猫补光灯与 AI 手搓应用的爆发",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "商业案例",
          "AI",
          "独立开发",
          "手搓经济"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_小猫补光灯与AI手搓应用的爆发.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/case_死了么app与独居安全工具的情绪需求",
        "relativePath": "知识库/卡片库/case_死了么app与独居安全工具的情绪需求",
        "permalink": "/card-library/case/dead-yet-app-and-living-alone-anxiety/",
        "title": "死了么 App 与独居安全工具的情绪需求",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "商业案例",
          "AI",
          "独居社会",
          "情绪需求"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_死了么App与独居安全工具的情绪需求.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/case_现代制药高通量筛选与idea贬值",
        "relativePath": "知识库/卡片库/case_现代制药高通量筛选与idea贬值",
        "permalink": "/card-library/case/pharma-hts-idea-depreciation/",
        "title": "现代制药高通量筛选与 Idea 的物理贬值",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-library/insight/ai-era-builders-and-orchestrated/"
        ],
        "tags": [
          "商业案例",
          "医药行业",
          "方法论",
          "护城河"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_现代制药高通量筛选与Idea贬值.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/case_终末地paypal支付事故",
        "relativePath": "知识库/卡片库/case_终末地paypal支付事故",
        "permalink": "/card-library/case/endfield-paypal-incident/",
        "title": "终末地 Paypal 支付事故",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thought/critique-endfield/"
        ],
        "tags": [
          "终末地",
          "运营事故",
          "支付安全",
          "商业案例"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CASE_终末地Paypal支付事故.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/csharp/如何用-csharp-阻止-windows-电脑休眠",
        "relativePath": "知识库/csharp/如何用-csharp-阻止-windows-电脑休眠",
        "permalink": "/code/how-prevent-windows-sleep/",
        "title": "如何用 csharp 阻止 windows  电脑休眠",
        "type": "content",
        "folderPath": "知识库/csharp",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "csharp"
        ],
        "originalPath": "src/content/blog/知识库/csharp/如何用 csharp 阻止 windows 电脑休眠.md",
        "originalFolderPath": "src/content/blog/知识库/csharp"
      },
      {
        "fileId": "知识库/卡片库/cmp_中美历史文化差异",
        "relativePath": "知识库/卡片库/cmp_中美历史文化差异",
        "permalink": "/card-library/comparison/us-china-cultural-history/",
        "title": "中美历史文化差异",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/concept/us-killing-line/",
          "/card-library/comparison/us-china-social-systems/"
        ],
        "backwardLinks": [
          "/card-library/comparison/us-china-social-systems/",
          "/card-library/concept/us-killing-line/"
        ],
        "tags": [
          "文化比较",
          "历史路径",
          "文明基因"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CMP_中美历史文化差异.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/cmp_中美社会制度对比",
        "relativePath": "知识库/卡片库/cmp_中美社会制度对比",
        "permalink": "/card-library/comparison/us-china-social-systems/",
        "title": "中美社会制度对比",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/concept/us-killing-line/",
          "/card-library/comparison/us-china-cultural-history/",
          "/card-box/insight/capital-logic-in-risk-distribution/",
          "/card-library/insight/proletariat-in-ai-era/"
        ],
        "backwardLinks": [
          "/card-library/comparison/us-china-cultural-history/",
          "/card-library/concept/us-killing-line/",
          "/card-library/insight/proletariat-in-ai-era/",
          "/card-library/insight/mao-selected-works-social-contradictions/"
        ],
        "tags": [
          "制度比较",
          "社会保障",
          "治理模式"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CMP_中美社会制度对比.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/con_美国斩杀线",
        "relativePath": "知识库/卡片库/con_美国斩杀线",
        "permalink": "/card-library/concept/us-killing-line/",
        "title": "美国斩杀线",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/comparison/us-china-social-systems/",
          "/card-library/comparison/us-china-cultural-history/"
        ],
        "backwardLinks": [
          "/card-library/comparison/us-china-cultural-history/",
          "/card-library/comparison/us-china-social-systems/",
          "/card-library/insight/proletariat-in-ai-era/",
          "/card-library/insight/mao-selected-works-social-contradictions/"
        ],
        "tags": [
          "社会现象",
          "资本主义",
          "阶级分化"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/CON_美国斩杀线.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/idea_电磁力修仙世界",
        "relativePath": "知识库/卡片库/idea_电磁力修仙世界",
        "permalink": "/card-box/idea/electromagnetic-cultivation-world/",
        "title": "电磁力修仙世界",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-box/moc/"
        ],
        "tags": [
          "灵感",
          "科幻"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/IDEA_电磁力修仙世界.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_ai时代的idea贬值与验证基础设施",
        "relativePath": "知识库/卡片库/insight_ai时代的idea贬值与验证基础设施",
        "permalink": "/card-library/insight/ai-idea-depreciation/",
        "title": "AI 时代的 idea 贬值与验证基础设施",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/case/openclaw-community-iteration/"
        ],
        "backwardLinks": [
          "/card-library/insight/ai-era-builders-and-orchestrated/"
        ],
        "tags": [
          "AI",
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_AI时代的idea贬值与验证基础设施.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_ai时代的定价权悖论",
        "relativePath": "知识库/卡片库/insight_ai时代的定价权悖论",
        "permalink": "/card-library/insight/ai-pricing-power-paradox/",
        "title": "AI 时代的定价权悖论",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/case/anthropic-pricing-paradox/"
        ],
        "backwardLinks": [
          "/card-library/case/anthropic-pricing-paradox/",
          "/card-library/insight/private-data-vertical-moat/",
          "/card-library/insight/programmer-output-distillation-paradox/"
        ],
        "tags": [
          "AI",
          "商业模式",
          "定价权",
          "开源"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_AI时代的定价权悖论.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_ai时代的工程护城河",
        "relativePath": "知识库/卡片库/insight_ai时代的工程护城河",
        "permalink": "/card-box/insight/engineering-moats-in-ai-era/",
        "title": "AI 时代的工程护城河",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-library/insight/ai-era-builders-and-orchestrated/",
          "/card-library/insight/private-data-vertical-moat/"
        ],
        "tags": [
          "软件工程",
          "AI",
          "核心竞争力",
          "护城河"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_AI时代的工程护城河.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_ai时代的开发疲劳与决策成本",
        "relativePath": "知识库/卡片库/insight_ai时代的开发疲劳与决策成本",
        "permalink": "/card-library/insight/ai-fatigue-and-decision-cost/",
        "title": "AI 时代的开发疲劳：低生产成本与高决策成本",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "AI"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_AI时代的开发疲劳与决策成本.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_ai时代的无产阶级概念更新",
        "relativePath": "知识库/卡片库/insight_ai时代的无产阶级概念更新",
        "permalink": "/card-library/insight/proletariat-in-ai-era/",
        "title": "AI时代的无产阶级概念更新",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/comparison/us-china-social-systems/",
          "/card-library/concept/us-killing-line/",
          "/card-box/insight/capital-logic-in-risk-distribution/"
        ],
        "backwardLinks": [
          "/card-library/comparison/us-china-social-systems/"
        ],
        "tags": [
          "AI",
          "社会学"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_AI时代的无产阶级概念更新.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_ai时代验证系统的建造者与被编排者",
        "relativePath": "知识库/卡片库/insight_ai时代验证系统的建造者与被编排者",
        "permalink": "/card-library/insight/ai-era-builders-and-orchestrated/",
        "title": "AI 时代验证系统的建造者与被编排者",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/insight/ai-idea-depreciation/",
          "/card-box/insight/engineering-moats-in-ai-era/",
          "/card-library/case/openclaw-community-iteration/",
          "/card-library/case/spacex-validation-philosophy/",
          "/card-library/case/pharma-hts-idea-depreciation/",
          "/card-library/case/human-computers-hollowing-out/"
        ],
        "backwardLinks": [],
        "tags": [
          "AI"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_AI时代验证系统的建造者与被编排者.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_ai模型的知识壁垒坍塌与资源悖论",
        "relativePath": "知识库/卡片库/insight_ai模型的知识壁垒坍塌与资源悖论",
        "permalink": "/card-library/insight/ai-model-barrier-collapse/",
        "title": "AI 模型的知识壁垒坍塌与资源悖论",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/ai-distillation/"
        ],
        "backwardLinks": [
          "/card-library/insight/private-data-vertical-moat/"
        ],
        "tags": [
          "AI",
          "护城河",
          "知识蒸馏",
          "资源悖论"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_AI模型的知识壁垒坍塌与资源悖论.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_制度底层差异中的资本逻辑",
        "relativePath": "知识库/卡片库/insight_制度底层差异中的资本逻辑",
        "permalink": "/card-box/insight/capital-logic-in-risk-distribution/",
        "title": "制度底色：风险“个体化”与“社会化”的资本逻辑",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-library/comparison/us-china-social-systems/",
          "/card-library/insight/proletariat-in-ai-era/"
        ],
        "tags": [
          "制度比较",
          "资本逻辑",
          "社会保障"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_制度底层差异中的资本逻辑.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_卢曼编号的过时性",
        "relativePath": "知识库/卡片库/insight_卢曼编号的过时性",
        "permalink": "/card-box/insight/obsolescence-of-luhmann-numbering/",
        "title": "卢曼式编号的过时性：AI 时代的索引变革",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-box/moc/",
          "/knowledge-management/zettelkasten-method/"
        ],
        "tags": [
          "知识管理",
          "AI"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_卢曼编号的过时性.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_在吃汉堡比赛中输赢并不重要",
        "relativePath": "知识库/卡片库/insight_在吃汉堡比赛中输赢并不重要",
        "permalink": "/card-box/insight/hamburger-eating-and-life-meaning/",
        "title": "在吃汉堡比赛中，输赢并不重要",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "哲学"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_在吃汉堡比赛中输赢并不重要.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_收入剪刀差与阶级体感",
        "relativePath": "知识库/卡片库/insight_收入剪刀差与阶级体感",
        "permalink": "/card-box/insight/income-scissors-difference/",
        "title": "收入剪刀差与阶级体感",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thought/critique-endfield/"
        ],
        "tags": [
          "经济学",
          "消费观"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_收入剪刀差与阶级体感.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_时间的非对称性",
        "relativePath": "知识库/卡片库/insight_时间的非对称性",
        "permalink": "/card-box/insight/asymmetry-of-time/",
        "title": "时间的非对称性与焦虑根源",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "哲学",
          "随笔"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_时间的非对称性.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_毛选中的社会矛盾与群众思想",
        "relativePath": "知识库/卡片库/insight_毛选中的社会矛盾与群众思想",
        "permalink": "/card-library/insight/mao-selected-works-social-contradictions/",
        "title": "毛选中的社会矛盾与群众思想",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/concept/us-killing-line/",
          "/card-library/comparison/us-china-social-systems/"
        ],
        "backwardLinks": [],
        "tags": [
          "毛泽东思想",
          "阶级分析",
          "群众路线"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_毛选中的社会矛盾与群众思想.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_消失的收集箱",
        "relativePath": "知识库/卡片库/insight_消失的收集箱",
        "permalink": "/card-box/insight/the-disappearing-inbox/",
        "title": "消失的收集箱：AI 时代的延迟零加工",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-box/moc/",
          "/knowledge-management/zettelkasten-method/"
        ],
        "tags": [
          "知识管理",
          "AI",
          "工作流",
          "效率"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_消失的收集箱.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_玩着不那么爽快的终末地",
        "relativePath": "知识库/卡片库/insight_玩着不那么爽快的终末地",
        "permalink": "/card-library/insight/endfield-not-satisfying/",
        "title": "玩着不那么爽快的终末地",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thought/critique-endfield/"
        ],
        "tags": [
          "二游"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_玩着不那么爽快的终末地.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_消费主义下的性别与阶级疏离",
        "relativePath": "知识库/卡片库/insight_消费主义下的性别与阶级疏离",
        "permalink": "/card-box/insight/gender-roles-and-class-alienation/",
        "title": "消费主义语境下的性别角色与阶级疏离",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thought/critique-endfield/"
        ],
        "tags": [
          "消费主义"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_消费主义下的性别与阶级疏离.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_私有数据与垂类领域的agent长效壁垒",
        "relativePath": "知识库/卡片库/insight_私有数据与垂类领域的agent长效壁垒",
        "permalink": "/card-library/insight/private-data-vertical-moat/",
        "title": "私有数据与垂类领域的 Agent 长效壁垒",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-box/insight/engineering-moats-in-ai-era/",
          "/card-library/insight/ai-model-barrier-collapse/",
          "/card-library/insight/ai-pricing-power-paradox/"
        ],
        "backwardLinks": [],
        "tags": [
          "AI",
          "数据壁垒",
          "Agent",
          "垂类领域"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_私有数据与垂类领域的Agent长效壁垒.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_程序员的产出蒸馏与个人定价权悖论",
        "relativePath": "知识库/卡片库/insight_程序员的产出蒸馏与个人定价权悖论",
        "permalink": "/card-library/insight/programmer-output-distillation-paradox/",
        "title": "程序员的产出蒸馏与个人定价权悖论",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-library/insight/ai-pricing-power-paradox/",
          "/terminology/ai-distillation/",
          "/knowledge/vibe-coding/"
        ],
        "backwardLinks": [],
        "tags": [
          "AI",
          "开发者",
          "护城河",
          "定价权"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_程序员的产出蒸馏与个人定价权悖论.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_自我再抚育",
        "relativePath": "知识库/卡片库/insight_自我再抚育",
        "permalink": "/card-box/insight/self-reparenting/",
        "title": "自我再抚育：把自己当成孩子重新养育一遍",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "心理学",
          "疗愈",
          "自我成长",
          "情感教育"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_自我再抚育.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_编程范式对ai理解力的影响",
        "relativePath": "知识库/卡片库/insight_编程范式对ai理解力的影响",
        "permalink": "/card-box/insight/programming-paradigms-effect-on-ai/",
        "title": "编程范式对 AI 理解力的影响：为何 FP 优于 OOP",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge/vibe-coding/",
          "/knowledge-management/zettelkasten-in-ai-era/",
          "/card-box/moc/",
          "/code/front-end/try-use-vueireact/",
          "/code/web-frontend/vue2-vue3/",
          "/code/front-end/fe-store/"
        ],
        "backwardLinks": [
          "/card-box/moc/"
        ],
        "tags": [
          "AI",
          "编程范式",
          "函数式编程",
          "软件工程"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_编程范式对AI理解力的影响.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/卡片库/insight_赛博朋克式的原生绝望",
        "relativePath": "知识库/卡片库/insight_赛博朋克式的原生绝望",
        "permalink": "/card-box/insight/cyberpunk-native-despair/",
        "title": "赛博朋克式的原生绝望",
        "type": "content",
        "folderPath": "知识库/卡片库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "赛博朋克",
          "哲学"
        ],
        "originalPath": "src/content/blog/知识库/卡片库/INSIGHT_赛博朋克式的原生绝望.md",
        "originalFolderPath": "src/content/blog/知识库/卡片库"
      },
      {
        "fileId": "知识库/名词/3-2-1备份原则",
        "relativePath": "知识库/名词/3-2-1备份原则",
        "permalink": "/terminology/rule-of-backup-3-2-1/",
        "title": "3-2-1 备份原则",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/blog/server-down/",
          "/code/try-to-use-bitwarden/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/3-2-1备份原则.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/ai-蒸馏",
        "relativePath": "知识库/名词/ai-蒸馏",
        "permalink": "/terminology/ai-distillation/",
        "title": "AI 蒸馏",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-library/insight/ai-model-barrier-collapse/",
          "/card-library/insight/programmer-output-distillation-paradox/"
        ],
        "tags": [
          "术语",
          "AI"
        ],
        "originalPath": "src/content/blog/知识库/名词/AI-蒸馏.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/cc-协议",
        "relativePath": "知识库/名词/cc-协议",
        "permalink": "/terminology/cc/",
        "title": "CC 协议",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thought/thoughts-on-signature/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/CC 协议.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/d-bus",
        "relativePath": "知识库/名词/d-bus",
        "permalink": "/terminology/d-bus/",
        "title": "D-Bus",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/tools/systemd/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/D-Bus.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/fido",
        "relativePath": "知识库/名词/fido",
        "permalink": "/terminology/FIDO/",
        "title": "FIDO身份验证",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/passkey/",
          "/terminology/asymmetric encryption/"
        ],
        "backwardLinks": [
          "/terminology/passkey/"
        ],
        "tags": [
          "安全",
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/FIDO.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/gpt",
        "relativePath": "知识库/名词/gpt",
        "permalink": "/terminology/gpt/",
        "title": "GPT",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/open-ai/"
        ],
        "backwardLinks": [
          "/thinking/future-of-workers/",
          "/tool/gpt4o-table-template/",
          "/knowledge/efficiency-tool/future-ai-code-review-with-cursor/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/GPT.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/infrastructure-as-code",
        "relativePath": "知识库/名词/infrastructure-as-code",
        "permalink": "/terminology/infrastructure-as-code/",
        "title": "Infrastructure as Code",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/blog/server-migration/",
          "/2024/markdown-calendar-sync/"
        ],
        "tags": [
          "术语",
          "DevOps"
        ],
        "originalPath": "src/content/blog/知识库/名词/Infrastructure as Code.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/model-context-protocol",
        "relativePath": "知识库/名词/model-context-protocol",
        "permalink": "/knowledge/model-context-protocol/",
        "title": "Model Context Protocol",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/knowledge/efficiency-tool/future-ai-code-review-with-cursor/"
        ],
        "tags": [
          "名词"
        ],
        "originalPath": "src/content/blog/知识库/名词/Model Context Protocol.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/openai",
        "relativePath": "知识库/名词/openai",
        "permalink": "/terminology/open-ai/",
        "title": "OpenAI",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/terminology/gpt/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/OpenAI.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/vibe-coding",
        "relativePath": "知识库/名词/vibe-coding",
        "permalink": "/knowledge/vibe-coding/",
        "title": "Vibe Coding",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/blog/ai-rewrite-blog/",
          "/card-library/insight/programmer-output-distillation-paradox/",
          "/card-box/insight/programming-paradigms-effect-on-ai/"
        ],
        "tags": [
          "名词"
        ],
        "originalPath": "src/content/blog/知识库/名词/Vibe-Coding.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/monorepo",
        "relativePath": "知识库/名词/monorepo",
        "permalink": "/terminology/monorepo/",
        "title": "monorepo",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/polyrepo/"
        ],
        "backwardLinks": [
          "/2024/monorepo-best-practices/",
          "/terminology/polyrepo/",
          "/code/front-end/rules/",
          "/ci-cd/gitlab-downstream-trigger-pipeline/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/monorepo.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/polyrepo",
        "relativePath": "知识库/名词/polyrepo",
        "permalink": "/terminology/polyrepo/",
        "title": "polyrepo",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/monorepo/"
        ],
        "backwardLinks": [
          "/2024/monorepo-best-practices/",
          "/terminology/monorepo/",
          "/ci-cd/gitlab-downstream-trigger-pipeline/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/polyrepo.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/不安全反序列化漏洞",
        "relativePath": "知识库/名词/不安全反序列化漏洞",
        "permalink": "/terminology/insecure-deserialization/",
        "title": "不安全反序列化漏洞",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/cve-2025-66478/"
        ],
        "tags": [
          "术语",
          "安全"
        ],
        "originalPath": "src/content/blog/知识库/名词/不安全反序列化漏洞.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/大语言模型",
        "relativePath": "知识库/名词/大语言模型",
        "permalink": "/terminology/LLM/",
        "title": "大语言模型",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/thinking/future-of-workers/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/大语言模型.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/皮格马利翁效应",
        "relativePath": "知识库/名词/皮格马利翁效应",
        "permalink": "/terminology/pygmalion-effect/",
        "title": "皮格马利翁效应",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/皮格马利翁效应.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/端到端加密",
        "relativePath": "知识库/名词/端到端加密",
        "permalink": "/terminology/e2ee/",
        "title": "端到端加密",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/asymmetric encryption/"
        ],
        "backwardLinks": [
          "/code/try-to-use-bitwarden/"
        ],
        "tags": [
          "术语",
          "安全"
        ],
        "originalPath": "src/content/blog/知识库/名词/端到端加密.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/范式",
        "relativePath": "知识库/名词/范式",
        "permalink": "/terminology/paradigm/",
        "title": "范式",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/front-end/fe-store/"
        ],
        "tags": [
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/范式.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/通行密钥",
        "relativePath": "知识库/名词/通行密钥",
        "permalink": "/terminology/passkey/",
        "title": "通行密钥",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/FIDO/"
        ],
        "backwardLinks": [
          "/terminology/FIDO/"
        ],
        "tags": [
          "安全",
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/通行密钥.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/名词/非对称加密",
        "relativePath": "知识库/名词/非对称加密",
        "permalink": "/terminology/asymmetric encryption/",
        "title": "非对称加密",
        "type": "content",
        "folderPath": "知识库/名词",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/terminology/FIDO/",
          "/terminology/e2ee/"
        ],
        "tags": [
          "安全",
          "术语"
        ],
        "originalPath": "src/content/blog/知识库/名词/非对称加密.md",
        "originalFolderPath": "src/content/blog/知识库/名词"
      },
      {
        "fileId": "知识库/思考/怎样带好一个团队",
        "relativePath": "知识库/思考/怎样带好一个团队",
        "permalink": "/thinking/lead-team-effectively/",
        "title": "怎样带好一个团队",
        "type": "content",
        "folderPath": "知识库/思考",
        "childrenFileIds": [],
        "forwardLinks": [
          "/books/chinese-mao-19490313/",
          "/code/front-end/rules/"
        ],
        "backwardLinks": [
          "/methodology/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/思考/怎样带好一个团队.md",
        "originalFolderPath": "src/content/blog/知识库/思考"
      },
      {
        "fileId": "知识库/思考/又一个玩家社区的消亡",
        "relativePath": "知识库/思考/又一个玩家社区的消亡",
        "permalink": "/thinking/another-gaming-community-disappears/",
        "title": "又一个玩家社区的消亡 - mcbbs",
        "type": "content",
        "folderPath": "知识库/思考",
        "childrenFileIds": [],
        "forwardLinks": [
          "/friends/kanae/",
          "/2019/06/30/2019/mc/",
          "/mcbbs-closure-loss/",
          "/link-rot/",
          "/blog/what-why-how/"
        ],
        "backwardLinks": [
          "/thought/thoughts-on-signature/"
        ],
        "tags": [
          "思考"
        ],
        "originalPath": "src/content/blog/知识库/思考/又一个玩家社区的消亡.md",
        "originalFolderPath": "src/content/blog/知识库/思考"
      },
      {
        "fileId": "知识库/思考/新时代下的打工人将何去何从",
        "relativePath": "知识库/思考/新时代下的打工人将何去何从",
        "permalink": "/thinking/future-of-workers/",
        "title": "新时代下的打工人将何去何从？",
        "type": "content",
        "folderPath": "知识库/思考",
        "childrenFileIds": [],
        "forwardLinks": [
          "/tool/gpt4o-table-template/",
          "/terminology/gpt/",
          "/terminology/LLM/"
        ],
        "backwardLinks": [],
        "tags": [
          "思考"
        ],
        "originalPath": "src/content/blog/知识库/思考/新时代下的打工人将何去何从.md",
        "originalFolderPath": "src/content/blog/知识库/思考"
      },
      {
        "fileId": "知识库/服务器维护/如何解决服务器启动时挂载硬盘失败",
        "relativePath": "知识库/服务器维护/如何解决服务器启动时挂载硬盘失败",
        "permalink": "/linux/fstab-fail/",
        "title": "如何解决服务器启动时挂载硬盘失败",
        "type": "content",
        "folderPath": "知识库/服务器维护",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "服务器",
          "运维"
        ],
        "originalPath": "src/content/blog/知识库/服务器维护/如何解决服务器启动时挂载硬盘失败.md",
        "originalFolderPath": "src/content/blog/知识库/服务器维护"
      },
      {
        "fileId": "知识库/思考/结婚不需要户口本热议的背后问题",
        "relativePath": "知识库/思考/结婚不需要户口本热议的背后问题",
        "permalink": "/thought/marriage/",
        "title": "结婚不需要户口本热议的背后问题",
        "type": "content",
        "folderPath": "知识库/思考",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "思考"
        ],
        "originalPath": "src/content/blog/知识库/思考/结婚不需要户口本热议的背后问题.md",
        "originalFolderPath": "src/content/blog/知识库/思考"
      },
      {
        "fileId": "知识库/效率工具/vscode-file-nesting-config",
        "relativePath": "知识库/效率工具/vscode-file-nesting-config",
        "permalink": "/tools/vscode-file-nesting-config/",
        "title": "使用 vscode 的 File Nesting config 来收起不重要的衍生文件",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "生产力"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/Vscode File Nesting Config.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/systemd",
        "relativePath": "知识库/效率工具/systemd",
        "permalink": "/tools/systemd/",
        "title": "systemd",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/d-bus/"
        ],
        "backwardLinks": [
          "/code/try-to-use-bitwarden/"
        ],
        "tags": [
          "服务器",
          "工具"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/systemd.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/基于openapi规范的前后端接口开发工具链",
        "relativePath": "知识库/效率工具/基于openapi规范的前后端接口开发工具链",
        "permalink": "/code/openapi-based-api-development-toolchain/",
        "title": "基于 OpenAPI 规范的前后端接口开发工具链",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2021/11/25/2022/2021-annual-report/",
          "/knowledge-base/programming/interface-definition-language/"
        ],
        "backwardLinks": [],
        "tags": [
          "工具",
          "效率"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/基于OpenAPI规范的前后端接口开发工具链.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/我在用的一些免费的-serverless-服务",
        "relativePath": "知识库/效率工具/我在用的一些免费的-serverless-服务",
        "permalink": "/tool/free-serverless/",
        "title": "我在用的一些免费的 serverless 服务",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/blog/server-down/"
        ],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/我在用的一些免费的 serverless 服务.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/网站可访问检测",
        "relativePath": "知识库/效率工具/网站可访问检测",
        "permalink": "/blog/status/",
        "title": "网站可访问检测",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/网站可访问检测.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/bitwarden",
        "relativePath": "知识库/效率工具/bitwarden",
        "permalink": "/code/try-to-use-bitwarden/",
        "title": "试试用 bitwarden 来管理你的密码",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/e2ee/",
          "/terminology/rule-of-backup-3-2-1/",
          "/tools/systemd/"
        ],
        "backwardLinks": [],
        "tags": [
          "生产力"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/bitwarden.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/obsidian常用配置指南",
        "relativePath": "知识库/效率工具/obsidian常用配置指南",
        "permalink": "/2024/obsidian-plugin/",
        "title": "obsidian常用配置指南",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/friends/sleaf/"
        ],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/obsidian常用配置指南.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/笔记日程同步到google-calendar",
        "relativePath": "知识库/效率工具/笔记日程同步到google-calendar",
        "permalink": "/2024/markdown-calendar-sync/",
        "title": "Obsidian 笔记日程同步到 Google Calendar",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/infrastructure-as-code/"
        ],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/笔记日程同步到Google Calendar.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/基于gpt-4o的表格模板生成",
        "relativePath": "知识库/效率工具/基于gpt-4o的表格模板生成",
        "permalink": "/tool/gpt4o-table-template/",
        "title": "基于GPT-4o的表格模板生成",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/gpt/"
        ],
        "backwardLinks": [
          "/thinking/future-of-workers/"
        ],
        "tags": [
          "工具",
          "AI"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/基于GPT-4o的表格模板生成.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/效率工具/未来已来---基于-cursor-的-ai-code-review",
        "relativePath": "知识库/效率工具/未来已来---基于-cursor-的-ai-code-review",
        "permalink": "/knowledge/efficiency-tool/future-ai-code-review-with-cursor/",
        "title": "未来已来？-- 基于 cursor 的 ai code review",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/gpt/",
          "/knowledge/model-context-protocol/"
        ],
        "backwardLinks": [],
        "tags": [
          "AI",
          "编辑器"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/未来已来？-- 基于 cursor 的 AI code review.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/知识管理/卡片库规范",
        "relativePath": "知识库/知识管理/卡片库规范",
        "permalink": "/knowledge-management/card-library-specification/",
        "title": "卡片库规范",
        "type": "content",
        "folderPath": "知识库/知识管理",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-management/zettelkasten-method/",
          "/knowledge-management/zettelkasten-pros-cons/",
          "/knowledge-management/zettelkasten-in-ai-era/"
        ],
        "backwardLinks": [],
        "tags": [
          "知识管理",
          "卡片笔记",
          "规范"
        ],
        "originalPath": "src/content/blog/知识库/知识管理/卡片库规范.md",
        "originalFolderPath": "src/content/blog/知识库/知识管理"
      },
      {
        "fileId": "知识库/知识管理/卡片笔记法",
        "relativePath": "知识库/知识管理/卡片笔记法",
        "permalink": "/knowledge-management/zettelkasten-method/",
        "title": "卢曼卡片笔记法",
        "type": "content",
        "folderPath": "知识库/知识管理",
        "childrenFileIds": [],
        "forwardLinks": [
          "/card-box/moc/",
          "/knowledge-management/zettelkasten-pros-cons/",
          "/knowledge-management/zettelkasten-in-ai-era/",
          "/card-box/insight/the-disappearing-inbox/",
          "/card-box/insight/obsolescence-of-luhmann-numbering/"
        ],
        "backwardLinks": [
          "/card-box/moc/",
          "/knowledge-management/card-library-specification/",
          "/knowledge-management/zettelkasten-pros-cons/"
        ],
        "tags": [
          "知识管理",
          "生产力",
          "方法论",
          "卡片笔记"
        ],
        "originalPath": "src/content/blog/知识库/知识管理/卡片笔记法.md",
        "originalFolderPath": "src/content/blog/知识库/知识管理"
      },
      {
        "fileId": "知识库/知识管理/卡片笔记法与ai",
        "relativePath": "知识库/知识管理/卡片笔记法与ai",
        "permalink": "/knowledge-management/zettelkasten-in-ai-era/",
        "title": "AI 时代的卡片笔记法",
        "type": "content",
        "folderPath": "知识库/知识管理",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-box/moc/",
          "/card-box/insight/programming-paradigms-effect-on-ai/",
          "/knowledge-management/card-library-specification/",
          "/knowledge-management/zettelkasten-method/"
        ],
        "tags": [
          "知识管理",
          "人工智能",
          "第二大脑"
        ],
        "originalPath": "src/content/blog/知识库/知识管理/卡片笔记法与AI.md",
        "originalFolderPath": "src/content/blog/知识库/知识管理"
      },
      {
        "fileId": "知识库/知识管理/卡片笔记法的优劣",
        "relativePath": "知识库/知识管理/卡片笔记法的优劣",
        "permalink": "/knowledge-management/zettelkasten-pros-cons/",
        "title": "卡片笔记法的优势与劣势",
        "type": "content",
        "folderPath": "知识库/知识管理",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-management/zettelkasten-method/"
        ],
        "backwardLinks": [
          "/card-box/moc/",
          "/knowledge-management/card-library-specification/",
          "/knowledge-management/zettelkasten-method/"
        ],
        "tags": [
          "知识管理",
          "卡片笔记",
          "深度思考"
        ],
        "originalPath": "src/content/blog/知识库/知识管理/卡片笔记法的优劣.md",
        "originalFolderPath": "src/content/blog/知识库/知识管理"
      },
      {
        "fileId": "知识库/游戏开发/godot-autoloads以及-csharp-单例模式",
        "relativePath": "知识库/游戏开发/godot-autoloads以及-csharp-单例模式",
        "permalink": "/game-dev/godot-autoloads-and-csharp/",
        "title": "Godot autoload 以及 csharp 单例模式",
        "type": "content",
        "folderPath": "知识库/游戏开发",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/design-patterns/singleton-pattern/"
        ],
        "backwardLinks": [],
        "tags": [
          "游戏开发",
          "csharp"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/Godot autoloads以及 csharp 单例模式.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发"
      },
      {
        "fileId": "知识库/效率工具/静态部署工具",
        "relativePath": "知识库/效率工具/静态部署工具",
        "permalink": "/2024/static-deploy-tool/",
        "title": "静态部署工具",
        "type": "content",
        "folderPath": "知识库/效率工具",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "go"
        ],
        "originalPath": "src/content/blog/知识库/效率、工具/静态部署工具.md",
        "originalFolderPath": "src/content/blog/知识库/效率、工具"
      },
      {
        "fileId": "知识库/游戏开发/godot4-csharp-单例获取",
        "relativePath": "知识库/游戏开发/godot4-csharp-单例获取",
        "permalink": "/2024/godot4-singleton/",
        "title": "godot4 C# 单例获取节点",
        "type": "content",
        "folderPath": "知识库/游戏开发",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/design-patterns/singleton-pattern/"
        ],
        "backwardLinks": [],
        "tags": [
          "游戏开发",
          "#csharp"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/godot4 csharp 单例获取.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发"
      },
      {
        "fileId": "知识库/游戏开发",
        "relativePath": "知识库/游戏开发",
        "permalink": "/game-developer/",
        "title": "游戏开发",
        "type": "content",
        "folderPath": "知识库",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/"
        ],
        "tags": [
          "游戏开发"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/index.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发"
      },
      {
        "fileId": "知识库/游戏开发/在-godot4-中实现异步场景加载",
        "relativePath": "知识库/游戏开发/在-godot4-中实现异步场景加载",
        "permalink": "/2024/godot-loading-scene/",
        "title": "在 godot4 中实现异步场景加载",
        "type": "content",
        "folderPath": "知识库/游戏开发",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "游戏开发"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/在 godot4 中实现异步场景加载.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发"
      },
      {
        "fileId": "知识库/游戏开发/实现一个简单的对话框功能",
        "relativePath": "知识库/游戏开发/实现一个简单的对话框功能",
        "permalink": "/godot/bag-system/dialog/",
        "title": "godot4.3 中使用 csharp 实现一个简单的对话框功能",
        "type": "content",
        "folderPath": "知识库/游戏开发",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "游戏开发",
          "csharp"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/实现一个简单的对话框功能.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发"
      },
      {
        "fileId": "知识库/其他/link-rot",
        "relativePath": "知识库/其他/link-rot",
        "permalink": "/link-rot/",
        "title": "链接丢失",
        "type": "content",
        "folderPath": "知识库/其他",
        "childrenFileIds": [],
        "forwardLinks": [
          "/friends/sleaf/",
          "/2020/05/06/2020/max-length-of-url/"
        ],
        "backwardLinks": [
          "/blog/what-why-how/",
          "/thought/thoughts-on-signature/",
          "/thinking/another-gaming-community-disappears/"
        ],
        "tags": [
          "思考"
        ],
        "originalPath": "src/content/blog/知识库/其他/link-rot.md",
        "originalFolderPath": "src/content/blog/知识库/其他"
      },
      {
        "fileId": "知识库/其他/库伯勒-罗丝模型",
        "relativePath": "知识库/其他/库伯勒-罗丝模型",
        "permalink": "/knowledge-base/other/kubler-ross-model/",
        "title": "库伯勒-罗丝模型",
        "type": "content",
        "folderPath": "知识库/其他",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/知识库/其他/库伯勒-罗丝模型.md",
        "originalFolderPath": "src/content/blog/知识库/其他"
      },
      {
        "fileId": "知识库/其他/熵增定律",
        "relativePath": "知识库/其他/熵增定律",
        "permalink": "/knowledge-base/other/entropy-increase-law/",
        "title": "熵增定律",
        "type": "content",
        "folderPath": "知识库/其他",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/micro-frontend/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/知识库/其他/熵增定律.md",
        "originalFolderPath": "src/content/blog/知识库/其他"
      },
      {
        "fileId": "知识库/其他/鸵鸟方案",
        "relativePath": "知识库/其他/鸵鸟方案",
        "permalink": "/other/ostrich-solution/",
        "title": "鸵鸟方案",
        "type": "content",
        "folderPath": "知识库/其他",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/micro-frontend/",
          "/code/front-end/vdom/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/知识库/其他/鸵鸟方案.md",
        "originalFolderPath": "src/content/blog/知识库/其他"
      },
      {
        "fileId": "知识库/编程/api查询语言",
        "relativePath": "知识库/编程/api查询语言",
        "permalink": "/knowledge-base/programming/api-query-language/",
        "title": "API查询语言",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2021/11/25/2022/2021-annual-report/"
        ],
        "tags": [
          "编程知识"
        ],
        "originalPath": "src/content/blog/知识库/编程/API查询语言.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/idl",
        "relativePath": "知识库/编程/idl",
        "permalink": "/knowledge-base/programming/interface-definition-language/",
        "title": "IDL",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2021/11/25/2022/2021-annual-report/",
          "/code/openapi-based-api-development-toolchain/"
        ],
        "tags": [
          "编程知识"
        ],
        "originalPath": "src/content/blog/知识库/编程/IDL.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/node-特性支持表",
        "relativePath": "知识库/编程/node-特性支持表",
        "permalink": "/knowledge-base/programming/node-feature-support-table/",
        "title": "node 特性支持表",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "工具"
        ],
        "originalPath": "src/content/blog/知识库/编程/node 特性支持表.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/tc39",
        "relativePath": "知识库/编程/tc39",
        "permalink": "/knowledge-base/programming/tc39/",
        "title": "tc39",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2022/05/19/2022/class-validator/",
          "/code/js-new-set-operations-api/"
        ],
        "tags": [
          "机构"
        ],
        "originalPath": "src/content/blog/知识库/编程/tc39.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/主干开发",
        "relativePath": "知识库/编程/主干开发",
        "permalink": "/code/trunk-based-development/",
        "title": "主干开发",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2024/monorepo-best-practices/",
          "/knowledge-base/programming/single-source-of-truth/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/编程/主干开发.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/代码维护的可规模化",
        "relativePath": "知识库/编程/代码维护的可规模化",
        "permalink": "/2022/scalable-code-maintenance/",
        "title": "代码维护的可规模化",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/methodology/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/编程/代码维护的可规模化.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/伪代码",
        "relativePath": "知识库/编程/伪代码",
        "permalink": "/knowledge-base/programming/pseudocode/",
        "title": "伪代码",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/godot/bag-system/drag/",
          "/code/front-end/fe-store/",
          "/knowledge-base/programming/algorithms/algorithms/"
        ],
        "tags": [
          "编程知识"
        ],
        "originalPath": "src/content/blog/知识库/编程/伪代码.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/依赖地狱",
        "relativePath": "知识库/编程/依赖地狱",
        "permalink": "/code/dependency-hell/",
        "title": "依赖地狱",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2024/monorepo-best-practices/"
        ],
        "tags": [
          "编程知识"
        ],
        "originalPath": "src/content/blog/知识库/编程/依赖地狱.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/单一版本",
        "relativePath": "知识库/编程/单一版本",
        "permalink": "/knowledge-base/programming/single-source-of-truth/",
        "title": "单一版本",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/trunk-based-development/"
        ],
        "backwardLinks": [
          "/2024/monorepo-best-practices/"
        ],
        "tags": [
          "架构",
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/编程/单一版本.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/单例模式",
        "relativePath": "知识库/编程/单例模式",
        "permalink": "/knowledge-base/programming/design-patterns/singleton-pattern/",
        "title": "单例模式",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/game-dev/godot-autoloads-and-csharp/",
          "/2024/godot4-singleton/",
          "/godot/bag-system/gui/"
        ],
        "tags": [
          "设计模式"
        ],
        "originalPath": "src/content/blog/知识库/编程/单例模式.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/单可信源",
        "relativePath": "知识库/编程/单可信源",
        "permalink": "/code/ssot/",
        "title": "单可信源",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2024/monorepo-best-practices/",
          "/code/front-end/fe-store/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/编程/单可信源.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/康威定律",
        "relativePath": "知识库/编程/康威定律",
        "permalink": "/code/conway-Law/",
        "title": "康威定律",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/software-architecture/"
        ],
        "backwardLinks": [
          "/2024/monorepo-best-practices/",
          "/code/micro-frontend/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/编程/康威定律.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/没有银弹",
        "relativePath": "知识库/编程/没有银弹",
        "permalink": "/no-silver-bullet/",
        "title": "没有银弹",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2022/code-quality/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/知识库/编程/没有银弹.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/浅谈代码质量",
        "relativePath": "知识库/编程/浅谈代码质量",
        "permalink": "/2022/code-quality/",
        "title": "浅谈代码质量",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [
          "/no-silver-bullet/",
          "/2023/anemic-domain-model/"
        ],
        "backwardLinks": [
          "/methodology/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/编程/浅谈代码质量.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/类型体操",
        "relativePath": "知识库/编程/类型体操",
        "permalink": "/knowledge-base/programming/type-gymnastics/",
        "title": "类型体操",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编程知识"
        ],
        "originalPath": "src/content/blog/知识库/编程/类型体操.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/菱形依赖",
        "relativePath": "知识库/编程/菱形依赖",
        "permalink": "/code/diamond-dependency/",
        "title": "菱形依赖",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2024/monorepo-best-practices/"
        ],
        "tags": [
          "编程知识"
        ],
        "originalPath": "src/content/blog/知识库/编程/菱形依赖.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "知识库/编程/软件架构",
        "relativePath": "知识库/编程/软件架构",
        "permalink": "/code/software-architecture/",
        "title": "软件架构",
        "type": "content",
        "folderPath": "知识库/编程",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/conway-Law/",
          "/code/micro-frontend/"
        ],
        "tags": [
          "架构"
        ],
        "originalPath": "src/content/blog/知识库/编程/软件架构.md",
        "originalFolderPath": "src/content/blog/知识库/编程"
      },
      {
        "fileId": "archives/2018/h5/写个h5编辑器有多难0",
        "relativePath": "archives/2018/h5/写个h5编辑器有多难0",
        "permalink": "/2018/05/01/2018/h5/h5-0/",
        "title": "[h5] 写个h5编辑器有多难？[0]",
        "type": "content",
        "folderPath": "archives/2018/h5",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2018/05/01/2018/h5/h5-1/"
        ],
        "tags": [
          "框架",
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2018/h5/写个h5编辑器有多难？0.md",
        "originalFolderPath": "src/content/blog/archives/2018/h5"
      },
      {
        "fileId": "archives/2018/h5/写个h5编辑器有多难1",
        "relativePath": "archives/2018/h5/写个h5编辑器有多难1",
        "permalink": "/2018/05/01/2018/h5/h5-1/",
        "title": "[h5] 写个h5编辑器有多难？[1]",
        "type": "content",
        "folderPath": "archives/2018/h5",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2018/05/01/2018/h5/h5-0/"
        ],
        "backwardLinks": [
          "/2018/05/01/2018/h5/h5-2/"
        ],
        "tags": [
          "框架",
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2018/h5/写个h5编辑器有多难？1.md",
        "originalFolderPath": "src/content/blog/archives/2018/h5"
      },
      {
        "fileId": "archives/2018/h5/写个h5编辑器有多难2",
        "relativePath": "archives/2018/h5/写个h5编辑器有多难2",
        "permalink": "/2018/05/01/2018/h5/h5-2/",
        "title": "[h5] 写个h5编辑器有多难？[2]",
        "type": "content",
        "folderPath": "archives/2018/h5",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2018/05/01/2018/h5/h5-1/"
        ],
        "backwardLinks": [
          "/2018/05/01/2018/h5/h5-3/"
        ],
        "tags": [
          "框架",
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2018/h5/写个h5编辑器有多难？2.md",
        "originalFolderPath": "src/content/blog/archives/2018/h5"
      },
      {
        "fileId": "archives/2018/leetcode/add-two-numbers",
        "relativePath": "archives/2018/leetcode/add-two-numbers",
        "permalink": "/2018/06/24/2018/leetcode/2/",
        "title": "leetcode：Add Two Numbers(#2)",
        "type": "content",
        "folderPath": "archives/2018/leetcode",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "算法",
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2018/leetcode/Add Two Numbers.md",
        "originalFolderPath": "src/content/blog/archives/2018/leetcode"
      },
      {
        "fileId": "archives/2018/h5/写个h5编辑器有多难3",
        "relativePath": "archives/2018/h5/写个h5编辑器有多难3",
        "permalink": "/2018/05/01/2018/h5/h5-3/",
        "title": "[h5] 写个h5编辑器有多难？[3]",
        "type": "content",
        "folderPath": "archives/2018/h5",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2018/05/01/2018/h5/h5-2/"
        ],
        "backwardLinks": [],
        "tags": [
          "框架",
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2018/h5/写个h5编辑器有多难？3.md",
        "originalFolderPath": "src/content/blog/archives/2018/h5"
      },
      {
        "fileId": "archives/2018/leetcode/two-sum",
        "relativePath": "archives/2018/leetcode/two-sum",
        "permalink": "/2018/06/24/2018/leetcode/1/",
        "title": "leetcode： two sum(#1)",
        "type": "content",
        "folderPath": "archives/2018/leetcode",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/algorithms/time-complexity/"
        ],
        "backwardLinks": [],
        "tags": [
          "算法",
          "javascript"
        ],
        "originalPath": "src/content/blog/archives/2018/leetcode/two sum.md",
        "originalFolderPath": "src/content/blog/archives/2018/leetcode"
      },
      {
        "fileId": "知识库/游戏开发/godot-背包系统",
        "relativePath": "知识库/游戏开发/godot-背包系统",
        "permalink": "/godot/bag-system/moc/",
        "title": "godot4 中实现一个简单的背包系统",
        "type": "content",
        "folderPath": "知识库/游戏开发",
        "childrenFileIds": [],
        "forwardLinks": [
          "/godot/bag-system/database/",
          "/godot/bag-system/controller/",
          "/godot/bag-system/gui/",
          "/godot/bag-system/drag/"
        ],
        "backwardLinks": [],
        "tags": [
          "游戏开发"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/godot 背包系统/index.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发/godot 背包系统"
      },
      {
        "fileId": "知识库/游戏开发/godot-背包系统/如何设计一个背包的控制逻辑",
        "relativePath": "知识库/游戏开发/godot-背包系统/如何设计一个背包的控制逻辑",
        "permalink": "/godot/bag-system/controller/",
        "title": "如何设计一个背包的控制逻辑",
        "type": "content",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "childrenFileIds": [],
        "forwardLinks": [
          "/godot/bag-system/database/"
        ],
        "backwardLinks": [
          "/godot/bag-system/moc/",
          "/godot/bag-system/gui/"
        ],
        "tags": [
          "游戏开发"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/godot 背包系统/如何设计一个背包的控制逻辑.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发/godot 背包系统"
      },
      {
        "fileId": "知识库/游戏开发/godot-背包系统/如何设计一个背包系统的数据结构",
        "relativePath": "知识库/游戏开发/godot-背包系统/如何设计一个背包系统的数据结构",
        "permalink": "/godot/bag-system/database/",
        "title": "如何设计一个背包系统的数据结构",
        "type": "content",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/godot/bag-system/moc/",
          "/godot/bag-system/controller/"
        ],
        "tags": [
          "游戏开发"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/godot 背包系统/如何设计一个背包系统的数据结构.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发/godot 背包系统"
      },
      {
        "fileId": "知识库/游戏开发/godot-背包系统/实现背包gui",
        "relativePath": "知识库/游戏开发/godot-背包系统/实现背包gui",
        "permalink": "/godot/bag-system/gui/",
        "title": "实现背包GUI",
        "type": "content",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "childrenFileIds": [],
        "forwardLinks": [
          "/godot/bag-system/controller/",
          "/knowledge-base/programming/design-patterns/singleton-pattern/",
          "/knowledge-base/programming/design-patterns/flyweight-pattern/"
        ],
        "backwardLinks": [
          "/godot/bag-system/moc/",
          "/godot/bag-system/drag/"
        ],
        "tags": [
          "游戏开发"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/godot 背包系统/实现背包GUI.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发/godot 背包系统"
      },
      {
        "fileId": "知识库/游戏开发/godot-背包系统/实现背包拖拽",
        "relativePath": "知识库/游戏开发/godot-背包系统/实现背包拖拽",
        "permalink": "/godot/bag-system/drag/",
        "title": "实现背包拖拽",
        "type": "content",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "childrenFileIds": [],
        "forwardLinks": [
          "/godot/bag-system/gui/",
          "/knowledge-base/programming/pseudocode/"
        ],
        "backwardLinks": [
          "/godot/bag-system/moc/"
        ],
        "tags": [
          "游戏开发"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/godot 背包系统/实现背包拖拽.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发/godot 背包系统"
      },
      {
        "fileId": "知识库/游戏开发/游戏开发中的状态机与状态模式",
        "relativePath": "知识库/游戏开发/游戏开发中的状态机与状态模式",
        "permalink": "/game-dev/state/",
        "title": "游戏开发中的状态机与状态模式",
        "type": "content",
        "folderPath": "知识库/游戏开发",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "游戏开发",
          "设计模式"
        ],
        "originalPath": "src/content/blog/知识库/游戏开发/游戏开发中的状态机与状态模式/index.md",
        "originalFolderPath": "src/content/blog/知识库/游戏开发/游戏开发中的状态机与状态模式"
      },
      {
        "fileId": "知识库/其他/博弈论",
        "relativePath": "知识库/其他/博弈论",
        "permalink": "/game-theory/",
        "title": "博弈论",
        "type": "content",
        "folderPath": "知识库/其他",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/knowledge-base/other/game-theory/coordination-problem/",
          "/knowledge-base/other/game-theory/prisoners-dilemma/"
        ],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/index.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/严格劣势策略",
        "relativePath": "知识库/其他/博弈论/严格劣势策略",
        "permalink": "/knowledge-base/other/game-theory/strictly-dominated-strategy/",
        "title": "严格劣势策略",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/knowledge-base/other/game-theory/game-theory-perspective-taking-lesson2/",
          "/knowledge-base/other/game-theory/game-theory-introduction-lesson1/"
        ],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/严格劣势策略.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/优势策略",
        "relativePath": "知识库/其他/博弈论/优势策略",
        "permalink": "/knowledge-base/other/game-theory/dominant-strategy/",
        "title": "优势策略未命名",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/knowledge-base/other/game-theory/game-theory-perspective-taking-lesson2/",
          "/knowledge-base/other/game-theory/game-theory-introduction-lesson1/"
        ],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/优势策略.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/协调问题",
        "relativePath": "知识库/其他/博弈论/协调问题",
        "permalink": "/knowledge-base/other/game-theory/coordination-problem/",
        "title": "协调问题",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [
          "/game-theory/"
        ],
        "backwardLinks": [],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/协调问题.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/博弈论-学会换位思考-lession2",
        "relativePath": "知识库/其他/博弈论/博弈论-学会换位思考-lession2",
        "permalink": "/knowledge-base/other/game-theory/game-theory-perspective-taking-lesson2/",
        "title": "博弈论-导论-lession1",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/other/game-theory/game-theory-introduction-lesson1/",
          "/knowledge-base/other/game-theory/guess-two-thirds-average-game/",
          "/knowledge-base/other/game-theory/prisoners-dilemma/",
          "/knowledge-base/other/game-theory/dominant-strategy/",
          "/knowledge-base/other/game-theory/strictly-dominated-strategy/"
        ],
        "backwardLinks": [],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/博弈论-学会换位思考-lession2.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/博弈论-导论-lession1",
        "relativePath": "知识库/其他/博弈论/博弈论-导论-lession1",
        "permalink": "/knowledge-base/other/game-theory/game-theory-introduction-lesson1/",
        "title": "博弈论-导论-lession1",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/other/game-theory/strictly-dominated-strategy/",
          "/knowledge-base/other/game-theory/dominant-strategy/",
          "/knowledge-base/other/game-theory/prisoners-dilemma/",
          "/knowledge-base/other/game-theory/guess-two-thirds-average-game/"
        ],
        "backwardLinks": [
          "/knowledge-base/other/game-theory/game-theory-perspective-taking-lesson2/"
        ],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/博弈论-导论-lession1.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/囚徒困境",
        "relativePath": "知识库/其他/博弈论/囚徒困境",
        "permalink": "/knowledge-base/other/game-theory/prisoners-dilemma/",
        "title": "囚徒困境",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [
          "/game-theory/"
        ],
        "backwardLinks": [
          "/knowledge-base/other/game-theory/game-theory-perspective-taking-lesson2/",
          "/knowledge-base/other/game-theory/game-theory-introduction-lesson1/"
        ],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/囚徒困境.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/猜三分之二平均数游戏",
        "relativePath": "知识库/其他/博弈论/猜三分之二平均数游戏",
        "permalink": "/knowledge-base/other/game-theory/guess-two-thirds-average-game/",
        "title": "猜三分之二平均数游戏（Guess 2/3 of the Average Game）",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/other/game-theory/nash-equilibrium/"
        ],
        "backwardLinks": [
          "/knowledge-base/other/game-theory/game-theory-perspective-taking-lesson2/",
          "/knowledge-base/other/game-theory/game-theory-introduction-lesson1/"
        ],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/猜三分之二平均数游戏.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/其他/博弈论/纳什均衡",
        "relativePath": "知识库/其他/博弈论/纳什均衡",
        "permalink": "/knowledge-base/other/game-theory/nash-equilibrium/",
        "title": "纳什均衡",
        "type": "content",
        "folderPath": "知识库/其他/博弈论",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/knowledge-base/other/game-theory/guess-two-thirds-average-game/"
        ],
        "tags": [
          "博弈论"
        ],
        "originalPath": "src/content/blog/知识库/其他/博弈论/纳什均衡.md",
        "originalFolderPath": "src/content/blog/知识库/其他/博弈论"
      },
      {
        "fileId": "知识库/编程/前端/js-中的新集合操作-api",
        "relativePath": "知识库/编程/前端/js-中的新集合操作-api",
        "permalink": "/code/js-new-set-operations-api/",
        "title": "js 中的新集合操作 API",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/tc39/",
          "/code/js/set-like/",
          "/2016/10/10/2016/2016-10-10-what-is-polyfill/"
        ],
        "backwardLinks": [],
        "tags": [
          "javascript"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/js 中的新集合操作 API.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/abortcontroller",
        "relativePath": "知识库/编程/前端/abortcontroller",
        "permalink": "/code/front-end/abort-controller/",
        "title": "试试用 AbortController 来替代自己实现的取消 API",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/web-frontend/stream-download-to-input/"
        ],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/AbortController.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/react-dnd-backend-html5-与-默认-dnd-事件冲突",
        "relativePath": "知识库/编程/前端/react-dnd-backend-html5-与-默认-dnd-事件冲突",
        "permalink": "/2024/react-dnd-backend-html5-conflict-with-native-dnd/",
        "title": "react dnd backend html5 与 默认 dnd 事件冲突",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/react dnd backend html5 与 默认 dnd 事件冲突.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/set-like",
        "relativePath": "知识库/编程/前端/set-like",
        "permalink": "/code/js/set-like/",
        "title": "set-like",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/js-new-set-operations-api/"
        ],
        "tags": [
          "编程知识",
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/set-like.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/vue函数签名",
        "relativePath": "知识库/编程/前端/vue函数签名",
        "permalink": "/code/front-end/function-signature/",
        "title": "vue 函数签名（在 vue2中实现 vue3 函数签名）",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/web-frontend/vue2-vue3/"
        ],
        "backwardLinks": [
          "/code/front-end/rules/"
        ],
        "tags": [
          "vue"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/vue函数签名.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/优化-llm-流式输出-markdown-渲染效果",
        "relativePath": "知识库/编程/前端/优化-llm-流式输出-markdown-渲染效果",
        "permalink": "/code/front-end/optimize-llm-streaming-markdown-rendering/",
        "title": "优化 LLM 流式输出 markdown 渲染效果",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/front-end/vdom/"
        ],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/优化 LLM 流式输出 markdown 渲染效果.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/再谈谈-vue2-和-vue3",
        "relativePath": "知识库/编程/前端/再谈谈-vue2-和-vue3",
        "permalink": "/code/web-frontend/vue2-vue3/",
        "title": "再谈谈 vue2 和 vue3",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/micro-frontend/"
        ],
        "backwardLinks": [
          "/card-box/insight/programming-paradigms-effect-on-ai/",
          "/code/front-end/function-signature/"
        ],
        "tags": [
          "vue",
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/再谈谈 vue2 和 vue3.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/前端自动化端到端测试选型概述",
        "relativePath": "知识库/编程/前端/前端自动化端到端测试选型概述",
        "permalink": "/code/web-frontend/e2e-test/",
        "title": "前端自动化端到端测试选型概述",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/test/unit/",
          "/code/test/e2e/",
          "/code/test/auto/"
        ],
        "backwardLinks": [],
        "tags": [
          "测试",
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/前端自动化端到端测试选型概述.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/前端规范",
        "relativePath": "知识库/编程/前端/前端规范",
        "permalink": "/code/front-end/rules/",
        "title": "谈谈现在我在B端的落地的前端规范",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/monorepo/",
          "/code/front-end/function-signature/"
        ],
        "backwardLinks": [
          "/methodology/",
          "/thinking/lead-team-effectively/"
        ],
        "tags": [
          "方法论"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/前端规范.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/微前端",
        "relativePath": "知识库/编程/前端/微前端",
        "permalink": "/code/micro-frontend/",
        "title": "微前端",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/other/ostrich-solution/",
          "/code/conway-Law/",
          "/knowledge-base/other/entropy-increase-law/",
          "/code/software-architecture/"
        ],
        "backwardLinks": [
          "/code/web-frontend/vue2-vue3/"
        ],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/微前端.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/在setup中挂载vue实例后getcurrentinstance无法获取instance",
        "relativePath": "知识库/编程/前端/在setup中挂载vue实例后getcurrentinstance无法获取instance",
        "permalink": "/code/vue/getCurrentInstance-get-null-after-mount-vue-app/",
        "title": "在 setup 中挂载 vue 实例后 getCurrentInstance 无法获取 instance",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/friends/sleaf/"
        ],
        "backwardLinks": [],
        "tags": [
          "vue",
          "疑难杂症"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/在setup中挂载vue实例后getCurrentInstance无法获取instance.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/有望统合-esm-和-cjs-的-node23",
        "relativePath": "知识库/编程/前端/有望统合-esm-和-cjs-的-node23",
        "permalink": "/code/front-end/cjs-require-esm/",
        "title": "有望统合 ESM 和 CJS 的 node23",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "node"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/有望统合 ESM 和 CJS 的 node23.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/来做个倒计时按钮",
        "relativePath": "知识库/编程/前端/来做个倒计时按钮",
        "permalink": "/code/front-end/countdown-button/",
        "title": "来做个倒计时按钮",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/来做个倒计时按钮.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/来试试用-react-的写法写-vue",
        "relativePath": "知识库/编程/前端/来试试用-react-的写法写-vue",
        "permalink": "/code/front-end/try-use-vueireact/",
        "title": "来试试用 react 的写法写 vue",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/card-box/insight/programming-paradigms-effect-on-ai/"
        ],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/来试试用 react 的写法写 vue.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/流式下载文件并设置到input上",
        "relativePath": "知识库/编程/前端/流式下载文件并设置到input上",
        "permalink": "/code/web-frontend/stream-download-to-input/",
        "title": "前端流式下载文件并设置到 input 上",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/front-end/abort-controller/"
        ],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/流式下载文件并设置到input上.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/范式角度思考的前端状态管理",
        "relativePath": "知识库/编程/前端/范式角度思考的前端状态管理",
        "permalink": "/code/front-end/fe-store/",
        "title": "范式角度思考的前端状态管理",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/paradigm/",
          "/knowledge-base/programming/pseudocode/",
          "/code/front-end/vdom/",
          "/code/ssot/"
        ],
        "backwardLinks": [
          "/card-box/insight/programming-paradigms-effect-on-ai/"
        ],
        "tags": [
          "前端",
          "思考"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/范式角度思考的前端状态管理.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/虚拟dom",
        "relativePath": "知识库/编程/前端/虚拟dom",
        "permalink": "/code/front-end/vdom/",
        "title": "虚拟 dom",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/other/ostrich-solution/"
        ],
        "backwardLinks": [
          "/2017/04/16/2017/2017-04-16-how-to-implement-a-simple-mvc/",
          "/2017/05/07/2017/2017-05-7-how-to-implement-a-simple-mvc-2/",
          "/2017/05/14/2017/2017-05-14-how-to-implement-a-simple-mvc-4/",
          "/code/front-end/optimize-llm-streaming-markdown-rendering/",
          "/code/front-end/fe-store/"
        ],
        "tags": [
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/虚拟dom.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/前端/谈谈已经去世的websql和秽土转生的sqlite-wasm",
        "relativePath": "知识库/编程/前端/谈谈已经去世的websql和秽土转生的sqlite-wasm",
        "permalink": "/code/web-frontend/discuss-websql-and-sqlite-wasm/",
        "title": "谈谈已经去世的 websql 和秽土转生的 sqlite-wasm",
        "type": "content",
        "folderPath": "知识库/编程/前端",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2020/07/04/2020/dexiejs/"
        ],
        "backwardLinks": [],
        "tags": [
          "工具",
          "前端"
        ],
        "originalPath": "src/content/blog/知识库/编程/前端/谈谈已经去世的websql和秽土转生的sqlite-wasm.md",
        "originalFolderPath": "src/content/blog/知识库/编程/前端"
      },
      {
        "fileId": "知识库/编程/图形学/计算机图形学",
        "relativePath": "知识库/编程/图形学/计算机图形学",
        "permalink": "/knowledge-base/programming/graphics/computer-graphics/",
        "title": "计算机图形学",
        "type": "content",
        "folderPath": "知识库/编程/图形学",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [],
        "originalPath": "src/content/blog/知识库/编程/图形学/计算机图形学.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学"
      },
      {
        "fileId": "知识库/编程/安全/openssh-高危漏洞-cve-2024-6387",
        "relativePath": "知识库/编程/安全/openssh-高危漏洞-cve-2024-6387",
        "permalink": "/code/cve-2024-6387/",
        "title": "OpenSSH 高危漏洞 CVE-2024-6387",
        "type": "content",
        "folderPath": "知识库/编程/安全",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "安全"
        ],
        "originalPath": "src/content/blog/知识库/编程/安全/OpenSSH 高危漏洞 CVE-2024-6387.md",
        "originalFolderPath": "src/content/blog/知识库/编程/安全"
      },
      {
        "fileId": "知识库/编程/安全/rsc核弹级漏洞react-cve-2025-66478",
        "relativePath": "知识库/编程/安全/rsc核弹级漏洞react-cve-2025-66478",
        "permalink": "/code/cve-2025-66478/",
        "title": "RSC核弹级漏洞React CVE-2025-66478",
        "type": "content",
        "folderPath": "知识库/编程/安全",
        "childrenFileIds": [],
        "forwardLinks": [
          "/terminology/insecure-deserialization/"
        ],
        "backwardLinks": [],
        "tags": [
          "安全",
          "react"
        ],
        "originalPath": "src/content/blog/知识库/编程/安全/RSC核弹级漏洞React CVE-2025-66478.md",
        "originalFolderPath": "src/content/blog/知识库/编程/安全"
      },
      {
        "fileId": "知识库/编程/安全/vite-中等威胁漏洞-cve-2025-30208",
        "relativePath": "知识库/编程/安全/vite-中等威胁漏洞-cve-2025-30208",
        "permalink": "/code/cve-2025-30208/",
        "title": "Vite 中等威胁漏洞 CVE-2025-30208",
        "type": "content",
        "folderPath": "知识库/编程/安全",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "安全"
        ],
        "originalPath": "src/content/blog/知识库/编程/安全/Vite 中等威胁漏洞 CVE-2025-30208.md",
        "originalFolderPath": "src/content/blog/知识库/编程/安全"
      },
      {
        "fileId": "知识库/编程/测试/端到端测试",
        "relativePath": "知识库/编程/测试/端到端测试",
        "permalink": "/code/test/e2e/",
        "title": "端到端测试",
        "type": "content",
        "folderPath": "知识库/编程/测试",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/web-frontend/e2e-test/",
          "/code/test/auto/"
        ],
        "tags": [
          "测试"
        ],
        "originalPath": "src/content/blog/知识库/编程/测试/端到端测试.md",
        "originalFolderPath": "src/content/blog/知识库/编程/测试"
      },
      {
        "fileId": "知识库/编程/测试/单元测试",
        "relativePath": "知识库/编程/测试/单元测试",
        "permalink": "/code/test/unit/",
        "title": "单元测试",
        "type": "content",
        "folderPath": "知识库/编程/测试",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/code/web-frontend/e2e-test/",
          "/code/test/auto/"
        ],
        "tags": [
          "测试"
        ],
        "originalPath": "src/content/blog/知识库/编程/测试/单元测试.md",
        "originalFolderPath": "src/content/blog/知识库/编程/测试"
      },
      {
        "fileId": "知识库/编程/测试/自动化测试",
        "relativePath": "知识库/编程/测试/自动化测试",
        "permalink": "/code/test/auto/",
        "title": "自动化测试",
        "type": "content",
        "folderPath": "知识库/编程/测试",
        "childrenFileIds": [],
        "forwardLinks": [
          "/code/test/unit/",
          "/code/test/e2e/"
        ],
        "backwardLinks": [
          "/2024/monorepo-best-practices/",
          "/code/web-frontend/e2e-test/"
        ],
        "tags": [
          "测试"
        ],
        "originalPath": "src/content/blog/知识库/编程/测试/自动化测试.md",
        "originalFolderPath": "src/content/blog/知识库/编程/测试"
      },
      {
        "fileId": "知识库/编程/算法/广度优先算法",
        "relativePath": "知识库/编程/算法/广度优先算法",
        "permalink": "/knowledge-base/programming/algorithms/breadth-first-algorithm/",
        "title": "广度优先算法",
        "type": "content",
        "folderPath": "知识库/编程/算法",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2017/04/16/2017/2017-04-16-how-to-implement-a-simple-mvc/"
        ],
        "tags": [
          "TODO",
          "算法"
        ],
        "originalPath": "src/content/blog/知识库/编程/算法/广度优先算法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/算法"
      },
      {
        "fileId": "知识库/编程/算法/排序算法",
        "relativePath": "知识库/编程/算法/排序算法",
        "permalink": "/knowledge-base/programming/algorithms/sorting-algorithms/",
        "title": "排序算法",
        "type": "content",
        "folderPath": "知识库/编程/算法",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/algorithms/time-complexity/"
        ],
        "backwardLinks": [
          "/knowledge-base/programming/algorithms/algorithms/"
        ],
        "tags": [
          "算法"
        ],
        "originalPath": "src/content/blog/知识库/编程/算法/排序算法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/算法"
      },
      {
        "fileId": "知识库/编程/算法/搜索算法",
        "relativePath": "知识库/编程/算法/搜索算法",
        "permalink": "/knowledge-base/programming/algorithms/search-algorithms/",
        "title": "搜索算法",
        "type": "content",
        "folderPath": "知识库/编程/算法",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/knowledge-base/programming/algorithms/algorithms/"
        ],
        "tags": [
          "算法"
        ],
        "originalPath": "src/content/blog/知识库/编程/算法/搜索算法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/算法"
      },
      {
        "fileId": "知识库/编程/算法/时间复杂度",
        "relativePath": "知识库/编程/算法/时间复杂度",
        "permalink": "/knowledge-base/programming/algorithms/time-complexity/",
        "title": "时间复杂度",
        "type": "content",
        "folderPath": "知识库/编程/算法",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2022/fibonacci/",
          "/2018/06/24/2018/leetcode/1/",
          "/knowledge-base/programming/algorithms/sorting-algorithms/",
          "/knowledge-base/programming/algorithms/algorithms/"
        ],
        "tags": [
          "编程知识",
          "算法"
        ],
        "originalPath": "src/content/blog/知识库/编程/算法/时间复杂度.md",
        "originalFolderPath": "src/content/blog/知识库/编程/算法"
      },
      {
        "fileId": "知识库/编程/算法/深度优先算法",
        "relativePath": "知识库/编程/算法/深度优先算法",
        "permalink": "/knowledge-base/programming/algorithms/depth-first-algorithm/",
        "title": "深度优先算法",
        "type": "content",
        "folderPath": "知识库/编程/算法",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2017/04/16/2017/2017-04-16-how-to-implement-a-simple-mvc/"
        ],
        "tags": [
          "TODO",
          "算法"
        ],
        "originalPath": "src/content/blog/知识库/编程/算法/深度优先算法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/算法"
      },
      {
        "fileId": "知识库/编程/算法/波函数坍缩算法",
        "relativePath": "知识库/编程/算法/波函数坍缩算法",
        "permalink": "/knowledge-base/programming/algorithms/wave-function-collapse-algorithm/",
        "title": "波函数坍缩算法",
        "type": "content",
        "folderPath": "知识库/编程/算法",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "算法"
        ],
        "originalPath": "src/content/blog/知识库/编程/算法/波函数坍缩算法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/算法"
      },
      {
        "fileId": "知识库/编程/算法/算法",
        "relativePath": "知识库/编程/算法/算法",
        "permalink": "/knowledge-base/programming/algorithms/algorithms/",
        "title": "算法",
        "type": "content",
        "folderPath": "知识库/编程/算法",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/algorithms/time-complexity/",
          "/knowledge-base/programming/pseudocode/",
          "/knowledge-base/programming/algorithms/sorting-algorithms/",
          "/knowledge-base/programming/algorithms/search-algorithms/"
        ],
        "backwardLinks": [
          "/2022/fibonacci/",
          "/knowledge-base/programming/design-patterns/design-patterns/"
        ],
        "tags": [
          "算法"
        ],
        "originalPath": "src/content/blog/知识库/编程/算法/算法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/算法"
      },
      {
        "fileId": "知识库/编程/编译和构建/aot",
        "relativePath": "知识库/编程/编译和构建/aot",
        "permalink": "/2022/aot/",
        "title": "AOT",
        "type": "content",
        "folderPath": "知识库/编程/编译和构建",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编译"
        ],
        "originalPath": "src/content/blog/知识库/编程/编译和构建/AOT.md",
        "originalFolderPath": "src/content/blog/知识库/编程/编译和构建"
      },
      {
        "fileId": "知识库/编程/编译和构建/jit",
        "relativePath": "知识库/编程/编译和构建/jit",
        "permalink": "/2022/jit/",
        "title": "JIT",
        "type": "content",
        "folderPath": "知识库/编程/编译和构建",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "编译"
        ],
        "originalPath": "src/content/blog/知识库/编程/编译和构建/JIT.md",
        "originalFolderPath": "src/content/blog/知识库/编程/编译和构建"
      },
      {
        "fileId": "知识库/编程/编译和构建/利用-gitlab-downstream-trigger-简化-pipeline-配置",
        "relativePath": "知识库/编程/编译和构建/利用-gitlab-downstream-trigger-简化-pipeline-配置",
        "permalink": "/ci-cd/gitlab-downstream-trigger-pipeline/",
        "title": "利用 gitlab downstream trigger 简化 pipeline 配置",
        "type": "content",
        "folderPath": "知识库/编程/编译和构建",
        "childrenFileIds": [],
        "forwardLinks": [
          "/2024/monorepo-best-practices/",
          "/terminology/polyrepo/",
          "/terminology/monorepo/"
        ],
        "backwardLinks": [],
        "tags": [
          "运维"
        ],
        "originalPath": "src/content/blog/知识库/编程/编译和构建/利用 gitlab downstream trigger 简化 pipeline 配置.md",
        "originalFolderPath": "src/content/blog/知识库/编程/编译和构建"
      },
      {
        "fileId": "知识库/编程/设计模式/享元模式",
        "relativePath": "知识库/编程/设计模式/享元模式",
        "permalink": "/knowledge-base/programming/design-patterns/flyweight-pattern/",
        "title": "享元模式",
        "type": "content",
        "folderPath": "知识库/编程/设计模式",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/design-patterns/design-patterns/"
        ],
        "backwardLinks": [
          "/godot/bag-system/gui/"
        ],
        "tags": [
          "设计模式"
        ],
        "originalPath": "src/content/blog/知识库/编程/设计模式/享元模式.md",
        "originalFolderPath": "src/content/blog/知识库/编程/设计模式"
      },
      {
        "fileId": "知识库/编程/设计模式/设计模式",
        "relativePath": "知识库/编程/设计模式/设计模式",
        "permalink": "/knowledge-base/programming/design-patterns/design-patterns/",
        "title": "设计模式",
        "type": "content",
        "folderPath": "知识库/编程/设计模式",
        "childrenFileIds": [],
        "forwardLinks": [
          "/knowledge-base/programming/algorithms/algorithms/"
        ],
        "backwardLinks": [
          "/knowledge-base/programming/design-patterns/flyweight-pattern/"
        ],
        "tags": [
          "设计模式"
        ],
        "originalPath": "src/content/blog/知识库/编程/设计模式/设计模式.md",
        "originalFolderPath": "src/content/blog/知识库/编程/设计模式"
      },
      {
        "fileId": "知识库/编程/设计模式/贫血模型",
        "relativePath": "知识库/编程/设计模式/贫血模型",
        "permalink": "/2023/anemic-domain-model/",
        "title": "贫血模型",
        "type": "content",
        "folderPath": "知识库/编程/设计模式",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/2022/code-quality/"
        ],
        "tags": [],
        "originalPath": "src/content/blog/知识库/编程/设计模式/贫血模型.md",
        "originalFolderPath": "src/content/blog/知识库/编程/设计模式"
      },
      {
        "fileId": "知识库/编程/编译和构建/monorepo-项目中如何部署-node-服务",
        "relativePath": "知识库/编程/编译和构建/monorepo-项目中如何部署-node-服务",
        "permalink": "/ci-cd/mono-repo-for-node-server/",
        "title": "monorepo 项目中如何部署 node 服务",
        "type": "content",
        "folderPath": "知识库/编程/编译和构建",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "运维"
        ],
        "originalPath": "src/content/blog/知识库/编程/编译和构建/monorepo 项目中如何部署 node 服务.md",
        "originalFolderPath": "src/content/blog/知识库/编程/编译和构建"
      },
      {
        "fileId": "知识库/编程/图形学/game101s",
        "relativePath": "知识库/编程/图形学/game101s",
        "permalink": "/graphics/game101s/",
        "title": "Game101s",
        "type": "content",
        "folderPath": "知识库/编程/图形学",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/base/"
        ],
        "backwardLinks": [],
        "tags": [
          "游戏开发",
          "图形学"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/Game101s/index.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/Game101s"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数",
        "relativePath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/base/",
        "title": "基础线性代数",
        "type": "content",
        "folderPath": "知识库/编程/图形学",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/vector/",
          "/linear-algebra/matrix/"
        ],
        "backwardLinks": [
          "/graphics/game101s/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/index.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/判断向量的左右内外",
        "relativePath": "知识库/编程/图形学/线性代数/判断向量的左右内外",
        "permalink": "/linear-algebra/vector-absolute-position/",
        "title": "判断向量的左右、内外",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/vector-dot/"
        ],
        "backwardLinks": [],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/判断向量的左右、内外.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/判断向量的相对方向",
        "relativePath": "知识库/编程/图形学/线性代数/判断向量的相对方向",
        "permalink": "/linear-algebra/vector-relative-position/",
        "title": "判断向量的相对方向",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/vector-dot/"
        ],
        "backwardLinks": [],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/判断向量的相对方向.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/单位向量",
        "relativePath": "知识库/编程/图形学/线性代数/单位向量",
        "permalink": "/linear-algebra/identity-vector/",
        "title": "单位向量",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/vector-module/"
        ],
        "backwardLinks": [
          "/linear-algebra/vector-dot/",
          "/linear-algebra/vector-normalization/",
          "/linear-algebra/vector-module/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/单位向量.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/单位矩阵",
        "relativePath": "知识库/编程/图形学/线性代数/单位矩阵",
        "permalink": "/linear-algebra/identity-matrix/",
        "title": "单位矩阵",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/matrix-transpose/"
        ],
        "backwardLinks": [],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/单位矩阵.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/向量",
        "relativePath": "知识库/编程/图形学/线性代数/向量",
        "permalink": "/linear-algebra/vector/",
        "title": "向量（vector）",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/linear-algebra/base/",
          "/linear-algebra/vector-normalization/",
          "/linear-algebra/vector-module/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/向量.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/向量投影",
        "relativePath": "知识库/编程/图形学/线性代数/向量投影",
        "permalink": "/linear-algebra/vector-projection/",
        "title": "向量投影",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/vector-plus/"
        ],
        "backwardLinks": [],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/向量投影.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/向量的乘法",
        "relativePath": "知识库/编程/图形学/线性代数/向量的乘法",
        "permalink": "/linear-algebra/vector-dot/",
        "title": "向量的乘法",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/identity-vector/",
          "/linear-algebra/vector-under-cartesian-coordinate/",
          "/linear-algebra/matrix/",
          "/linear-algebra/matrix-and-vector-dot/"
        ],
        "backwardLinks": [
          "/linear-algebra/vector-absolute-position/",
          "/linear-algebra/vector-relative-position/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/向量的乘法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/向量的归一化",
        "relativePath": "知识库/编程/图形学/线性代数/向量的归一化",
        "permalink": "/linear-algebra/vector-normalization/",
        "title": "向量的归一化 vector normalization",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/vector/",
          "/linear-algebra/identity-vector/"
        ],
        "backwardLinks": [],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/向量的归一化.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/模",
        "relativePath": "知识库/编程/图形学/线性代数/模",
        "permalink": "/linear-algebra/vector-module/",
        "title": "向量长度（模）module",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/vector/",
          "/linear-algebra/identity-vector/"
        ],
        "backwardLinks": [
          "/linear-algebra/identity-vector/",
          "/linear-algebra/vector-under-cartesian-coordinate/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/模.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/向量的求和",
        "relativePath": "知识库/编程/图形学/线性代数/向量的求和",
        "permalink": "/linear-algebra/vector-plus/",
        "title": "向量求和",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/linear-algebra/vector-projection/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/向量的求和.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/矩阵",
        "relativePath": "知识库/编程/图形学/线性代数/矩阵",
        "permalink": "/linear-algebra/matrix/",
        "title": "矩阵",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/linear-algebra/base/",
          "/linear-algebra/vector-dot/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/矩阵.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/矩阵乘法",
        "relativePath": "知识库/编程/图形学/线性代数/矩阵乘法",
        "permalink": "/linear-algebra/matrix-dot/",
        "title": "矩阵乘法",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/矩阵乘法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/矩阵和向量的乘法",
        "relativePath": "知识库/编程/图形学/线性代数/矩阵和向量的乘法",
        "permalink": "/linear-algebra/matrix-and-vector-dot/",
        "title": "矩阵和向量的乘法",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/linear-algebra/vector-dot/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/矩阵和向量的乘法.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/笛卡尔坐标系下的向量表示",
        "relativePath": "知识库/编程/图形学/线性代数/笛卡尔坐标系下的向量表示",
        "permalink": "/linear-algebra/vector-under-cartesian-coordinate/",
        "title": "笛卡尔坐标系下的向量表示",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [
          "/linear-algebra/matrix-transpose/",
          "/linear-algebra/vector-module/"
        ],
        "backwardLinks": [
          "/linear-algebra/vector-dot/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/笛卡尔坐标系下的向量表示.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      },
      {
        "fileId": "知识库/编程/图形学/线性代数/转置矩阵",
        "relativePath": "知识库/编程/图形学/线性代数/转置矩阵",
        "permalink": "/linear-algebra/matrix-transpose/",
        "title": "转置矩阵",
        "type": "content",
        "folderPath": "知识库/编程/图形学/线性代数",
        "childrenFileIds": [],
        "forwardLinks": [],
        "backwardLinks": [
          "/linear-algebra/identity-matrix/",
          "/linear-algebra/vector-under-cartesian-coordinate/"
        ],
        "tags": [
          "线性代数"
        ],
        "originalPath": "src/content/blog/知识库/编程/图形学/线性代数/转置矩阵.md",
        "originalFolderPath": "src/content/blog/知识库/编程/图形学/线性代数"
      }
    ],
    "folders": [
      {
        "folderPath": "",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "朋友圈",
          "杂记",
          "知识库",
          "archives"
        ],
        "fileIds": [
          "index",
          "目录索引",
          "archives",
          "朋友圈",
          "杂记",
          "知识库"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "朋友圈",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "朋友圈/sleaf",
          "朋友圈/kanae",
          "朋友圈/tinko",
          "朋友圈/xsw1m",
          "朋友圈/iceprosurface",
          "朋友圈/linuxdo",
          "朋友圈/x3金"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "杂记",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "杂记/博客开发与维护",
          "杂记/实验室"
        ],
        "fileIds": [
          "杂记/一些工具页面",
          "杂记/为什么要这样记录笔记",
          "杂记/关于-mcbbs-永久关闭我们永远失去了一个不可替代的社区",
          "杂记/关于访问速度",
          "杂记/关于链接和内容使用说明",
          "杂记/关于评论系统",
          "杂记/在线编程工具",
          "杂记/留言板-2024",
          "杂记/痛批终末地",
          "杂记/quartz-缓存刷新问题",
          "杂记/相关协议",
          "杂记/署名之谈二三事",
          "杂记/十年之约",
          "杂记/icepro-博客开发故事"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "知识库/书籍",
          "知识库/卡片库",
          "知识库/csharp",
          "知识库/名词",
          "知识库/思考",
          "知识库/服务器维护",
          "知识库/效率工具",
          "知识库/知识管理",
          "知识库/游戏开发",
          "知识库/其他",
          "知识库/编程"
        ],
        "fileIds": [
          "知识库/javascript",
          "知识库/卡片盒_moc",
          "知识库/方法论",
          "知识库/游戏开发"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2016",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2016/notification---来自html5的通知提醒功能",
          "archives/2016/angular-第三章-一个简单的购物车范例2",
          "archives/2016/fetch-api",
          "archives/2016/icepro-对于-jquery-实现的理解",
          "archives/2016/iceplayer-个人音乐播放器",
          "archives/2016/angular-第一章-基础知识篇",
          "archives/2016/angular-第四章-一个简单的购物车范例3",
          "archives/2016/angular-第二章-一个简单的购物车范例1",
          "archives/2016/js-中的-debugger",
          "archives/2016/lrc控制器",
          "archives/2016/media的使用",
          "archives/2016/objectfreeze--const",
          "archives/2016/select-联动",
          "archives/2016/什么是-polyfill",
          "archives/2016/原型方法对象方法和类方法",
          "archives/2016/如何使用-gulp-来构建你的项目",
          "archives/2016/如何让mac挂在ntfs的u盘",
          "archives/2016/标签栏实现",
          "archives/2016/模板字符串模板字面量的使用",
          "archives/2016/直角三角形的路径题",
          "archives/2016/第一章基础的node教学",
          "archives/2016/基于python制作上海海洋大学绩点计算器",
          "archives/2016/如何将-node-程序和-nginx-结合",
          "archives/2016/实现-tinkphp-和-nginx-的动静分离不使用-pathinfo",
          "archives/2016/换了一台新电脑",
          "archives/2016/octopress-基础指引",
          "archives/2016/部署你的-octopress-到-vps-上"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2017",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2017/从零开始编写属于你的mvc框架1",
          "archives/2017/从零开始编写属于你的mvc框架2",
          "archives/2017/从零开始编写属于你的前端mvc框架3",
          "archives/2017/从零开始编写属于你的前端mvc框架4",
          "archives/2017/如何从零开始编写一个简单的mvc框架"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2018",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "archives/2018/h5",
          "archives/2018/leetcode"
        ],
        "fileIds": [
          "archives/2018/invalid-date",
          "archives/2018/centos-6-配置安装-python-27",
          "archives/2018/ckeditor和vue联合踩坑",
          "archives/2018/压力测试",
          "archives/2018/在-markdown-中一键上传图片",
          "archives/2018/用户自定义icon的纯色显示",
          "archives/2018/隐式转换的的部分奥秘-valueoftosring",
          "archives/2018/如何让sass自动化的载入-2x-图片",
          "archives/2018/如何避免hover的背景图片在首次点击时出现闪烁"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2019",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2019/mc-服务器更新相关",
          "archives/2019/safari的带二维码的图片无法下载",
          "archives/2019/workbox-使用指北",
          "archives/2019/几个不常用-web-api-整理",
          "archives/2019/选饭问卷系统介绍"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2020",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2020/indexdb-初用解析--dexie",
          "archives/2020/url-地址栏的长度上限",
          "archives/2020/记一些常用的小脚本",
          "archives/2020/如何在-webview-中调用-javascript",
          "archives/2020/通过-webview-传输图片给-android"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2021",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2021/notion-blog"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2022",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2022/2021年年度总结",
          "archives/2022/js-实现流程任务执行",
          "archives/2022/lunar-vim",
          "archives/2022/volar更新正式版本",
          "archives/2022/vue27-升级指南",
          "archives/2022/vscode-vim-配置",
          "archives/2022/webpack5-资源处理上的小差异",
          "archives/2022/使用-esbuild-略微的提升一下老项目的构建体验",
          "archives/2022/基于-decorators-的-ant-design-vue-表单验证声明优化思路",
          "archives/2022/前端大数字精度丢失问题",
          "archives/2022/斐波那契数列算法时间复杂度",
          "archives/2022/有史以来最好用的-markdown-编辑器--obsidian"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2023",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2023/vue2712中使用-watch-观察数组对象将会触发多次"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2024",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2024/mono-项目最佳实践指南"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "杂记/博客开发与维护",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "杂记/博客开发与维护/rss-订阅",
          "杂记/博客开发与维护/quartz关系图谱优化",
          "杂记/博客开发与维护/quartz插件加载更多功能",
          "杂记/博客开发与维护/为-quartz-添加额外-shikijs-transform",
          "杂记/博客开发与维护/动态脚本加载",
          "杂记/博客开发与维护/我的云服务器被烧了",
          "杂记/博客开发与维护/我让ai重写了一遍博客",
          "杂记/博客开发与维护/服务器配置迁移记录",
          "杂记/博客开发与维护/重新谈谈字体加载"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "杂记/实验室",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "杂记/实验室/测试加密"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/书籍",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/书籍/党委会的工作方法",
          "知识库/书籍/游戏设计模式"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/卡片库",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/卡片库/case_anthropic降价风波与ai定价权悖论",
          "知识库/卡片库/case_openclaw与ai社区工具的高速迭代验证",
          "知识库/卡片库/case_spacex与航天验证哲学的反转",
          "知识库/卡片库/case_人类计算员的消亡与组织中空化",
          "知识库/卡片库/case_小猫补光灯与ai手搓应用的爆发",
          "知识库/卡片库/case_死了么app与独居安全工具的情绪需求",
          "知识库/卡片库/case_现代制药高通量筛选与idea贬值",
          "知识库/卡片库/case_终末地paypal支付事故",
          "知识库/卡片库/cmp_中美历史文化差异",
          "知识库/卡片库/cmp_中美社会制度对比",
          "知识库/卡片库/con_美国斩杀线",
          "知识库/卡片库/idea_电磁力修仙世界",
          "知识库/卡片库/insight_ai时代的idea贬值与验证基础设施",
          "知识库/卡片库/insight_ai时代的定价权悖论",
          "知识库/卡片库/insight_ai时代的工程护城河",
          "知识库/卡片库/insight_ai时代的开发疲劳与决策成本",
          "知识库/卡片库/insight_ai时代的无产阶级概念更新",
          "知识库/卡片库/insight_ai时代验证系统的建造者与被编排者",
          "知识库/卡片库/insight_ai模型的知识壁垒坍塌与资源悖论",
          "知识库/卡片库/insight_制度底层差异中的资本逻辑",
          "知识库/卡片库/insight_卢曼编号的过时性",
          "知识库/卡片库/insight_在吃汉堡比赛中输赢并不重要",
          "知识库/卡片库/insight_收入剪刀差与阶级体感",
          "知识库/卡片库/insight_时间的非对称性",
          "知识库/卡片库/insight_毛选中的社会矛盾与群众思想",
          "知识库/卡片库/insight_消失的收集箱",
          "知识库/卡片库/insight_玩着不那么爽快的终末地",
          "知识库/卡片库/insight_消费主义下的性别与阶级疏离",
          "知识库/卡片库/insight_私有数据与垂类领域的agent长效壁垒",
          "知识库/卡片库/insight_程序员的产出蒸馏与个人定价权悖论",
          "知识库/卡片库/insight_自我再抚育",
          "知识库/卡片库/insight_编程范式对ai理解力的影响",
          "知识库/卡片库/insight_赛博朋克式的原生绝望"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/csharp",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/csharp/如何用-csharp-阻止-windows-电脑休眠"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/名词",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/名词/3-2-1备份原则",
          "知识库/名词/ai-蒸馏",
          "知识库/名词/cc-协议",
          "知识库/名词/d-bus",
          "知识库/名词/fido",
          "知识库/名词/gpt",
          "知识库/名词/infrastructure-as-code",
          "知识库/名词/model-context-protocol",
          "知识库/名词/openai",
          "知识库/名词/vibe-coding",
          "知识库/名词/monorepo",
          "知识库/名词/polyrepo",
          "知识库/名词/不安全反序列化漏洞",
          "知识库/名词/大语言模型",
          "知识库/名词/皮格马利翁效应",
          "知识库/名词/端到端加密",
          "知识库/名词/范式",
          "知识库/名词/通行密钥",
          "知识库/名词/非对称加密"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/思考",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/思考/怎样带好一个团队",
          "知识库/思考/又一个玩家社区的消亡",
          "知识库/思考/新时代下的打工人将何去何从",
          "知识库/思考/结婚不需要户口本热议的背后问题"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/服务器维护",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/服务器维护/如何解决服务器启动时挂载硬盘失败"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/效率工具",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/效率工具/vscode-file-nesting-config",
          "知识库/效率工具/systemd",
          "知识库/效率工具/基于openapi规范的前后端接口开发工具链",
          "知识库/效率工具/我在用的一些免费的-serverless-服务",
          "知识库/效率工具/网站可访问检测",
          "知识库/效率工具/bitwarden",
          "知识库/效率工具/obsidian常用配置指南",
          "知识库/效率工具/笔记日程同步到google-calendar",
          "知识库/效率工具/基于gpt-4o的表格模板生成",
          "知识库/效率工具/未来已来---基于-cursor-的-ai-code-review",
          "知识库/效率工具/静态部署工具"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/知识管理",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/知识管理/卡片库规范",
          "知识库/知识管理/卡片笔记法",
          "知识库/知识管理/卡片笔记法与ai",
          "知识库/知识管理/卡片笔记法的优劣"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/游戏开发",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "知识库/游戏开发/godot-背包系统"
        ],
        "fileIds": [
          "知识库/游戏开发/godot-autoloads以及-csharp-单例模式",
          "知识库/游戏开发/godot4-csharp-单例获取",
          "知识库/游戏开发/在-godot4-中实现异步场景加载",
          "知识库/游戏开发/实现一个简单的对话框功能",
          "知识库/游戏开发/godot-背包系统",
          "知识库/游戏开发/游戏开发中的状态机与状态模式"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/其他",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "知识库/其他/博弈论"
        ],
        "fileIds": [
          "知识库/其他/link-rot",
          "知识库/其他/库伯勒-罗丝模型",
          "知识库/其他/熵增定律",
          "知识库/其他/鸵鸟方案",
          "知识库/其他/博弈论"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "知识库/编程/前端",
          "知识库/编程/图形学",
          "知识库/编程/安全",
          "知识库/编程/测试",
          "知识库/编程/算法",
          "知识库/编程/编译和构建",
          "知识库/编程/设计模式"
        ],
        "fileIds": [
          "知识库/编程/api查询语言",
          "知识库/编程/idl",
          "知识库/编程/node-特性支持表",
          "知识库/编程/tc39",
          "知识库/编程/主干开发",
          "知识库/编程/代码维护的可规模化",
          "知识库/编程/伪代码",
          "知识库/编程/依赖地狱",
          "知识库/编程/单一版本",
          "知识库/编程/单例模式",
          "知识库/编程/单可信源",
          "知识库/编程/康威定律",
          "知识库/编程/没有银弹",
          "知识库/编程/浅谈代码质量",
          "知识库/编程/类型体操",
          "知识库/编程/菱形依赖",
          "知识库/编程/软件架构"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2018/h5",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2018/h5/写个h5编辑器有多难0",
          "archives/2018/h5/写个h5编辑器有多难1",
          "archives/2018/h5/写个h5编辑器有多难2",
          "archives/2018/h5/写个h5编辑器有多难3"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives/2018/leetcode",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "archives/2018/leetcode/add-two-numbers",
          "archives/2018/leetcode/two-sum"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/游戏开发/godot-背包系统/如何设计一个背包的控制逻辑",
          "知识库/游戏开发/godot-背包系统/如何设计一个背包系统的数据结构",
          "知识库/游戏开发/godot-背包系统/实现背包gui",
          "知识库/游戏开发/godot-背包系统/实现背包拖拽"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/其他/博弈论",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/其他/博弈论/严格劣势策略",
          "知识库/其他/博弈论/优势策略",
          "知识库/其他/博弈论/协调问题",
          "知识库/其他/博弈论/博弈论-学会换位思考-lession2",
          "知识库/其他/博弈论/博弈论-导论-lession1",
          "知识库/其他/博弈论/囚徒困境",
          "知识库/其他/博弈论/猜三分之二平均数游戏",
          "知识库/其他/博弈论/纳什均衡"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/前端",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/编程/前端/js-中的新集合操作-api",
          "知识库/编程/前端/abortcontroller",
          "知识库/编程/前端/react-dnd-backend-html5-与-默认-dnd-事件冲突",
          "知识库/编程/前端/set-like",
          "知识库/编程/前端/vue函数签名",
          "知识库/编程/前端/优化-llm-流式输出-markdown-渲染效果",
          "知识库/编程/前端/再谈谈-vue2-和-vue3",
          "知识库/编程/前端/前端自动化端到端测试选型概述",
          "知识库/编程/前端/前端规范",
          "知识库/编程/前端/微前端",
          "知识库/编程/前端/在setup中挂载vue实例后getcurrentinstance无法获取instance",
          "知识库/编程/前端/有望统合-esm-和-cjs-的-node23",
          "知识库/编程/前端/来做个倒计时按钮",
          "知识库/编程/前端/来试试用-react-的写法写-vue",
          "知识库/编程/前端/流式下载文件并设置到input上",
          "知识库/编程/前端/范式角度思考的前端状态管理",
          "知识库/编程/前端/虚拟dom",
          "知识库/编程/前端/谈谈已经去世的websql和秽土转生的sqlite-wasm"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/图形学",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "知识库/编程/图形学/线性代数"
        ],
        "fileIds": [
          "知识库/编程/图形学/计算机图形学",
          "知识库/编程/图形学/game101s",
          "知识库/编程/图形学/线性代数"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/安全",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/编程/安全/openssh-高危漏洞-cve-2024-6387",
          "知识库/编程/安全/rsc核弹级漏洞react-cve-2025-66478",
          "知识库/编程/安全/vite-中等威胁漏洞-cve-2025-30208"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/测试",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/编程/测试/端到端测试",
          "知识库/编程/测试/单元测试",
          "知识库/编程/测试/自动化测试"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/算法",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/编程/算法/广度优先算法",
          "知识库/编程/算法/排序算法",
          "知识库/编程/算法/搜索算法",
          "知识库/编程/算法/时间复杂度",
          "知识库/编程/算法/深度优先算法",
          "知识库/编程/算法/波函数坍缩算法",
          "知识库/编程/算法/算法"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/编译和构建",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/编程/编译和构建/aot",
          "知识库/编程/编译和构建/jit",
          "知识库/编程/编译和构建/利用-gitlab-downstream-trigger-简化-pipeline-配置",
          "知识库/编程/编译和构建/monorepo-项目中如何部署-node-服务"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/设计模式",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/编程/设计模式/享元模式",
          "知识库/编程/设计模式/设计模式",
          "知识库/编程/设计模式/贫血模型"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "知识库/编程/图形学/线性代数",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [],
        "fileIds": [
          "知识库/编程/图形学/线性代数/判断向量的左右内外",
          "知识库/编程/图形学/线性代数/判断向量的相对方向",
          "知识库/编程/图形学/线性代数/单位向量",
          "知识库/编程/图形学/线性代数/单位矩阵",
          "知识库/编程/图形学/线性代数/向量",
          "知识库/编程/图形学/线性代数/向量投影",
          "知识库/编程/图形学/线性代数/向量的乘法",
          "知识库/编程/图形学/线性代数/向量的归一化",
          "知识库/编程/图形学/线性代数/模",
          "知识库/编程/图形学/线性代数/向量的求和",
          "知识库/编程/图形学/线性代数/矩阵",
          "知识库/编程/图形学/线性代数/矩阵乘法",
          "知识库/编程/图形学/线性代数/矩阵和向量的乘法",
          "知识库/编程/图形学/线性代数/笛卡尔坐标系下的向量表示",
          "知识库/编程/图形学/线性代数/转置矩阵"
        ],
        "permalink": null,
        "title": null
      },
      {
        "folderPath": "archives",
        "hasIndex": false,
        "indexFileId": null,
        "subfolders": [
          "archives/2016",
          "archives/2017",
          "archives/2018",
          "archives/2019",
          "archives/2020",
          "archives/2021",
          "archives/2022",
          "archives/2023",
          "archives/2024"
        ],
        "fileIds": [],
        "permalink": null,
        "title": null
      }
    ],
    "fileTree": {
      "": {
        "name": "",
        "type": "folder",
        "children": {}
      },
      "朋友圈": {
        "name": "朋友圈",
        "type": "file",
        "fileId": "朋友圈",
        "folderPath": "",
        "permalink": "/friends/",
        "title": "朋友圈"
      },
      "杂记": {
        "name": "杂记",
        "type": "file",
        "fileId": "杂记",
        "folderPath": "",
        "permalink": "/others/",
        "title": "杂记"
      },
      "知识库": {
        "name": "知识库",
        "type": "file",
        "fileId": "知识库",
        "folderPath": "",
        "permalink": "/knowledge/",
        "title": "知识库入口"
      },
      "archives": {
        "name": "archives",
        "type": "file",
        "fileId": "archives",
        "folderPath": "",
        "permalink": "/archives/",
        "title": "归档 MOC"
      },
      "index": {
        "name": "index",
        "type": "file",
        "fileId": "index",
        "folderPath": "",
        "permalink": "/",
        "title": "欢迎来到 icepro 的 blog"
      },
      "目录索引": {
        "name": "目录索引",
        "type": "file",
        "fileId": "目录索引",
        "folderPath": "",
        "permalink": "/explore/",
        "title": "目录索引"
      },
      "xsw1m": {
        "name": "xsw1m",
        "type": "file",
        "fileId": "朋友圈/xsw1m",
        "folderPath": "朋友圈",
        "permalink": "/friends/xsw1m/",
        "title": "Xsw1m"
      },
      "iceprosurface": {
        "name": "iceprosurface",
        "type": "file",
        "fileId": "朋友圈/iceprosurface",
        "folderPath": "朋友圈",
        "permalink": "/friends/iceprosurface/",
        "title": "iceprosurface"
      },
      "linuxdo": {
        "name": "linuxdo",
        "type": "file",
        "fileId": "朋友圈/linuxdo",
        "folderPath": "朋友圈",
        "permalink": "/friends/linux-do/",
        "title": "LINUX DO"
      },
      "x3金": {
        "name": "x3金",
        "type": "file",
        "fileId": "朋友圈/x3金",
        "folderPath": "朋友圈",
        "permalink": "/friends/jinx3/",
        "title": "x3金"
      },
      "一些工具页面": {
        "name": "一些工具页面",
        "type": "file",
        "fileId": "杂记/一些工具页面",
        "folderPath": "杂记",
        "permalink": "/tools/some-tools/",
        "title": "一些工具页面"
      },
      "为什么要这样记录笔记": {
        "name": "为什么要这样记录笔记",
        "type": "file",
        "fileId": "杂记/为什么要这样记录笔记",
        "folderPath": "杂记",
        "permalink": "/blog/what-why-how/",
        "title": "为什么要这样记录笔记?"
      },
      "关于-mcbbs-永久关闭我们永远失去了一个不可替代的社区": {
        "name": "关于-mcbbs-永久关闭我们永远失去了一个不可替代的社区",
        "type": "file",
        "fileId": "杂记/关于-mcbbs-永久关闭我们永远失去了一个不可替代的社区",
        "folderPath": "杂记",
        "permalink": "/mcbbs-closure-loss/",
        "title": "关于 MCBBS 永久关闭：我们永远失去了一个不可替代的社区"
      },
      "关于访问速度": {
        "name": "关于访问速度",
        "type": "file",
        "fileId": "杂记/关于访问速度",
        "folderPath": "杂记",
        "permalink": "/blog/speed/",
        "title": "关于访问速度"
      },
      "关于链接和内容使用说明": {
        "name": "关于链接和内容使用说明",
        "type": "file",
        "fileId": "杂记/关于链接和内容使用说明",
        "folderPath": "杂记",
        "permalink": "/blog/instructions-for-using-links/",
        "title": "关于链接和内容使用说明"
      },
      "关于评论系统": {
        "name": "关于评论系统",
        "type": "file",
        "fileId": "杂记/关于评论系统",
        "folderPath": "杂记",
        "permalink": "/blog/comments/",
        "title": "关于评论系统"
      },
      "在线编程工具": {
        "name": "在线编程工具",
        "type": "file",
        "fileId": "杂记/在线编程工具",
        "folderPath": "杂记",
        "permalink": "/misc/online-programming-tools/",
        "title": "在线编程工具"
      },
      "留言板-2024": {
        "name": "留言板-2024",
        "type": "file",
        "fileId": "杂记/留言板-2024",
        "folderPath": "杂记",
        "permalink": "/blog/bulletin-board-2024/",
        "title": "留言板"
      },
      "痛批终末地": {
        "name": "痛批终末地",
        "type": "file",
        "fileId": "杂记/痛批终末地",
        "folderPath": "杂记",
        "permalink": "/thought/critique-endfield/",
        "title": "痛批终末地"
      },
      "quartz-缓存刷新问题": {
        "name": "quartz-缓存刷新问题",
        "type": "file",
        "fileId": "杂记/quartz-缓存刷新问题",
        "folderPath": "杂记",
        "permalink": "/blog/quartz-cache-refresh/",
        "title": "quartz 缓存刷新问题"
      },
      "相关协议": {
        "name": "相关协议",
        "type": "file",
        "fileId": "杂记/相关协议",
        "folderPath": "杂记",
        "permalink": "/blog/license/",
        "title": "相关协议"
      },
      "署名之谈二三事": {
        "name": "署名之谈二三事",
        "type": "file",
        "fileId": "杂记/署名之谈二三事",
        "folderPath": "杂记",
        "permalink": "/thought/thoughts-on-signature/",
        "title": "署名之谈二三事"
      },
      "十年之约": {
        "name": "十年之约",
        "type": "file",
        "fileId": "杂记/十年之约",
        "folderPath": "杂记",
        "permalink": "/blog/blog-forever/",
        "title": "十年之约"
      },
      "javascript": {
        "name": "javascript",
        "type": "file",
        "fileId": "知识库/javascript",
        "folderPath": "知识库",
        "permalink": "/knowledge-base/javascript/",
        "title": "javascript"
      },
      "卡片盒_moc": {
        "name": "卡片盒_moc",
        "type": "file",
        "fileId": "知识库/卡片盒_moc",
        "folderPath": "知识库",
        "permalink": "/card-box/moc/",
        "title": "卢曼卡片盒 MOC"
      },
      "方法论": {
        "name": "方法论",
        "type": "file",
        "fileId": "知识库/方法论",
        "folderPath": "知识库",
        "permalink": "/methodology/",
        "title": "方法论"
      },
      "notification---来自html5的通知提醒功能": {
        "name": "notification---来自html5的通知提醒功能",
        "type": "file",
        "fileId": "archives/2016/notification---来自html5的通知提醒功能",
        "folderPath": "archives/2016",
        "permalink": "/2016/12/08/2016/2016-12-08-web-notification/",
        "title": "Notification --来自html5的通知提醒功能"
      },
      "angular-第三章-一个简单的购物车范例2": {
        "name": "angular-第三章-一个简单的购物车范例2",
        "type": "file",
        "fileId": "archives/2016/angular-第三章-一个简单的购物车范例2",
        "folderPath": "archives/2016",
        "permalink": "/2016/03/01/2016/2016-03-01-angular-3rd/",
        "title": "[angular.js]第三章 一个简单的购物车范例(2)"
      },
      "fetch-api": {
        "name": "fetch-api",
        "type": "file",
        "fileId": "archives/2016/fetch-api",
        "folderPath": "archives/2016",
        "permalink": "/2016/10/12/2016/2016-10-12-fetch-api/",
        "title": "fetch api"
      },
      "icepro-对于-jquery-实现的理解": {
        "name": "icepro-对于-jquery-实现的理解",
        "type": "file",
        "fileId": "archives/2016/icepro-对于-jquery-实现的理解",
        "folderPath": "archives/2016",
        "permalink": "/2016/06/2016/2016-06-13-jquery/",
        "title": "icepro对于jquery($)实现的理解"
      },
      "iceplayer-个人音乐播放器": {
        "name": "iceplayer-个人音乐播放器",
        "type": "file",
        "fileId": "archives/2016/iceplayer-个人音乐播放器",
        "folderPath": "archives/2016",
        "permalink": "/2016/05/01/2016/2016-05-01-iceplayer-1st/",
        "title": "第一篇 iceplayer 个人音乐播放器"
      },
      "icepro-博客开发故事": {
        "name": "icepro-博客开发故事",
        "type": "file",
        "fileId": "杂记/icepro-博客开发故事",
        "folderPath": "杂记",
        "permalink": "/blog/moc/",
        "title": "icepro 博客开发故事"
      },
      "angular-第一章-基础知识篇": {
        "name": "angular-第一章-基础知识篇",
        "type": "file",
        "fileId": "archives/2016/angular-第一章-基础知识篇",
        "folderPath": "archives/2016",
        "permalink": "/2016/02/26/2016/2016-02-26-angular-1st/",
        "title": "[angular.js]第一章 基础知识篇"
      },
      "angular-第四章-一个简单的购物车范例3": {
        "name": "angular-第四章-一个简单的购物车范例3",
        "type": "file",
        "fileId": "archives/2016/angular-第四章-一个简单的购物车范例3",
        "folderPath": "archives/2016",
        "permalink": "/2016/04/16/2016/2016-04-16-angular-4th/",
        "title": "[angular.js]第四章 一个简单的购物车范例(3)"
      },
      "angular-第二章-一个简单的购物车范例1": {
        "name": "angular-第二章-一个简单的购物车范例1",
        "type": "file",
        "fileId": "archives/2016/angular-第二章-一个简单的购物车范例1",
        "folderPath": "archives/2016",
        "permalink": "/2016/02/27/2016/2016-02-27-angular-2nd/",
        "title": "[angular.js]第二章 一个简单的购物车范例(1)"
      },
      "js-中的-debugger": {
        "name": "js-中的-debugger",
        "type": "file",
        "fileId": "archives/2016/js-中的-debugger",
        "folderPath": "archives/2016",
        "permalink": "/2016/10/10/2016/2016-10-10-js-debugger/",
        "title": "js 中的 debugger"
      },
      "lrc控制器": {
        "name": "lrc控制器",
        "type": "file",
        "fileId": "archives/2016/lrc控制器",
        "folderPath": "archives/2016",
        "permalink": "/2016/03/18/2016/2016-03-18-lrc-cont/",
        "title": "lrc控制器试验"
      },
      "media的使用": {
        "name": "media的使用",
        "type": "file",
        "fileId": "archives/2016/media的使用",
        "folderPath": "archives/2016",
        "permalink": "/2016/03/15/2016/2016-03-15-media-control/",
        "title": "media的使用"
      },
      "objectfreeze--const": {
        "name": "objectfreeze--const",
        "type": "file",
        "fileId": "archives/2016/objectfreeze--const",
        "folderPath": "archives/2016",
        "permalink": "/2016/12/07/2016/2016-12-07-object-freeze/",
        "title": "object.freeze & const"
      },
      "select-联动": {
        "name": "select-联动",
        "type": "file",
        "fileId": "archives/2016/select-联动",
        "folderPath": "archives/2016",
        "permalink": "/2016/08/10/2016/2016-08-10-formlinkage/",
        "title": "select 联动"
      },
      "什么是-polyfill": {
        "name": "什么是-polyfill",
        "type": "file",
        "fileId": "archives/2016/什么是-polyfill",
        "folderPath": "archives/2016",
        "permalink": "/2016/10/10/2016/2016-10-10-what-is-polyfill/",
        "title": "什么是 polyfill"
      },
      "原型方法对象方法和类方法": {
        "name": "原型方法对象方法和类方法",
        "type": "file",
        "fileId": "archives/2016/原型方法对象方法和类方法",
        "folderPath": "archives/2016",
        "permalink": "/2016/03/02/2016/2016-03-02-js-iife/",
        "title": "原型方法，对象方法和类方法的个人整理"
      },
      "如何使用-gulp-来构建你的项目": {
        "name": "如何使用-gulp-来构建你的项目",
        "type": "file",
        "fileId": "archives/2016/如何使用-gulp-来构建你的项目",
        "folderPath": "archives/2016",
        "permalink": "/2016/06/23/2016/2016-06-23-how-to-use-gulp/",
        "title": "如何使用 gulp 来构建你的项目"
      },
      "如何让mac挂在ntfs的u盘": {
        "name": "如何让mac挂在ntfs的u盘",
        "type": "file",
        "fileId": "archives/2016/如何让mac挂在ntfs的u盘",
        "folderPath": "archives/2016",
        "permalink": "/2016/05/17/2016/2016-05-17-mac-ntfs/",
        "title": "如何让mac挂在ntfs的u盘"
      },
      "标签栏实现": {
        "name": "标签栏实现",
        "type": "file",
        "fileId": "archives/2016/标签栏实现",
        "folderPath": "archives/2016",
        "permalink": "/2016/03/25/2016/2016-03-25-tab-js/",
        "title": "一个简单的可左右移动的标签栏"
      },
      "模板字符串模板字面量的使用": {
        "name": "模板字符串模板字面量的使用",
        "type": "file",
        "fileId": "archives/2016/模板字符串模板字面量的使用",
        "folderPath": "archives/2016",
        "permalink": "/2016/10/01/2016/2016-10-01-template-literals/",
        "title": "模板字符串(模板字面量)的使用"
      },
      "直角三角形的路径题": {
        "name": "直角三角形的路径题",
        "type": "file",
        "fileId": "archives/2016/直角三角形的路径题",
        "folderPath": "archives/2016",
        "permalink": "/2016/10/11/2016/2016-10-11-are-recursive-slash-question/",
        "title": "直角三角形的路径题"
      },
      "第一章基础的node教学": {
        "name": "第一章基础的node教学",
        "type": "file",
        "fileId": "archives/2016/第一章基础的node教学",
        "folderPath": "archives/2016",
        "permalink": "/2016/05/29/2016/2016-05-29-base-of-node-1/",
        "title": "[nodejs]第一章基础的node教学"
      },
      "基于python制作上海海洋大学绩点计算器": {
        "name": "基于python制作上海海洋大学绩点计算器",
        "type": "file",
        "fileId": "archives/2016/基于python制作上海海洋大学绩点计算器",
        "folderPath": "archives/2016",
        "permalink": "/2016/04/04/2016-04-04-base-on-python-cal/",
        "title": "基于python制作上海海洋大学绩点计算器"
      },
      "如何将-node-程序和-nginx-结合": {
        "name": "如何将-node-程序和-nginx-结合",
        "type": "file",
        "fileId": "archives/2016/如何将-node-程序和-nginx-结合",
        "folderPath": "archives/2016",
        "permalink": "/2016/06/06/node-nginx/",
        "title": "如何将node程序和nginx结合"
      },
      "实现-tinkphp-和-nginx-的动静分离不使用-pathinfo": {
        "name": "实现-tinkphp-和-nginx-的动静分离不使用-pathinfo",
        "type": "file",
        "fileId": "archives/2016/实现-tinkphp-和-nginx-的动静分离不使用-pathinfo",
        "folderPath": "archives/2016",
        "permalink": "/2016/06/13/2016/2016-06-13-use-tp-on-niginx/",
        "title": "实现tinkphp和nginx的动静分离（不使用pathinfo）"
      },
      "从零开始编写属于你的mvc框架1": {
        "name": "从零开始编写属于你的mvc框架1",
        "type": "file",
        "fileId": "archives/2017/从零开始编写属于你的mvc框架1",
        "folderPath": "archives/2017",
        "permalink": "/2017/04/16/2017/2017-04-16-how-to-implement-a-simple-mvc/",
        "title": "从零开始编写属于你的mvc框架[1]"
      },
      "换了一台新电脑": {
        "name": "换了一台新电脑",
        "type": "file",
        "fileId": "archives/2016/换了一台新电脑",
        "folderPath": "archives/2016",
        "permalink": "/2016/05/16/2016/2016-05-16-mac-use/",
        "title": "换了一台新电脑"
      },
      "从零开始编写属于你的mvc框架2": {
        "name": "从零开始编写属于你的mvc框架2",
        "type": "file",
        "fileId": "archives/2017/从零开始编写属于你的mvc框架2",
        "folderPath": "archives/2017",
        "permalink": "/2017/05/07/2017/2017-05-7-how-to-implement-a-simple-mvc-2/",
        "title": "从零开始编写属于你的mvc框架[2]"
      },
      "从零开始编写属于你的前端mvc框架3": {
        "name": "从零开始编写属于你的前端mvc框架3",
        "type": "file",
        "fileId": "archives/2017/从零开始编写属于你的前端mvc框架3",
        "folderPath": "archives/2017",
        "permalink": "/2017/05/13/2017/2017-05-13-how-to-implement-a-simple-mvc-3/",
        "title": "从零开始编写属于你的前端mvc框架[3]"
      },
      "从零开始编写属于你的前端mvc框架4": {
        "name": "从零开始编写属于你的前端mvc框架4",
        "type": "file",
        "fileId": "archives/2017/从零开始编写属于你的前端mvc框架4",
        "folderPath": "archives/2017",
        "permalink": "/2017/05/14/2017/2017-05-14-how-to-implement-a-simple-mvc-4/",
        "title": "从零开始编写属于你的前端mvc框架[4]"
      },
      "如何从零开始编写一个简单的mvc框架": {
        "name": "如何从零开始编写一个简单的mvc框架",
        "type": "file",
        "fileId": "archives/2017/如何从零开始编写一个简单的mvc框架",
        "folderPath": "archives/2017",
        "permalink": "/2017/04/15/2017/2017-04-15-how-to-implement-a-simple-mvc/",
        "title": "如何从零开始编写一个简单的mvc框架[0]"
      },
      "invalid-date": {
        "name": "invalid-date",
        "type": "file",
        "fileId": "archives/2018/invalid-date",
        "folderPath": "archives/2018",
        "permalink": "/2018/04/18/2018/Invalid-Date/",
        "title": "safari/IE Invalid Date 问题"
      },
      "centos-6-配置安装-python-27": {
        "name": "centos-6-配置安装-python-27",
        "type": "file",
        "fileId": "archives/2018/centos-6-配置安装-python-27",
        "folderPath": "archives/2018",
        "permalink": "/2018/04/17/2018/ss-on-centos6/",
        "title": "centos 6 配置安装 python 2.7"
      },
      "ckeditor和vue联合踩坑": {
        "name": "ckeditor和vue联合踩坑",
        "type": "file",
        "fileId": "archives/2018/ckeditor和vue联合踩坑",
        "folderPath": "archives/2018",
        "permalink": "/2018/01/18/2018/ckeditor/",
        "title": "ckeditor和vue联合踩坑"
      },
      "octopress-基础指引": {
        "name": "octopress-基础指引",
        "type": "file",
        "fileId": "archives/2016/octopress-基础指引",
        "folderPath": "archives/2016",
        "permalink": "/2016/02/27/2016/2016-02-27-octopress-base/",
        "title": "[Octopress]基础指引"
      },
      "压力测试": {
        "name": "压力测试",
        "type": "file",
        "fileId": "archives/2018/压力测试",
        "folderPath": "archives/2018",
        "permalink": "/2018/03/24/2018/stress-testing/",
        "title": "压力测试"
      },
      "在-markdown-中一键上传图片": {
        "name": "在-markdown-中一键上传图片",
        "type": "file",
        "fileId": "archives/2018/在-markdown-中一键上传图片",
        "folderPath": "archives/2018",
        "permalink": "/2018/04/08/2018/qiniu-picture-clould/",
        "title": "在 markdown 中一键上传图片"
      },
      "部署你的-octopress-到-vps-上": {
        "name": "部署你的-octopress-到-vps-上",
        "type": "file",
        "fileId": "archives/2016/部署你的-octopress-到-vps-上",
        "folderPath": "archives/2016",
        "permalink": "/2016/05/23/2016/2016-05-23-octopress-to-new-vps/",
        "title": "部署你的octopress到vps上"
      },
      "用户自定义icon的纯色显示": {
        "name": "用户自定义icon的纯色显示",
        "type": "file",
        "fileId": "archives/2018/用户自定义icon的纯色显示",
        "folderPath": "archives/2018",
        "permalink": "/2018/01/21/2018/custom-icon/",
        "title": "用户自定义icon的纯色显示"
      },
      "隐式转换的的部分奥秘-valueoftosring": {
        "name": "隐式转换的的部分奥秘-valueoftosring",
        "type": "file",
        "fileId": "archives/2018/隐式转换的的部分奥秘-valueoftosring",
        "folderPath": "archives/2018",
        "permalink": "/2018/09/18/2018/valueOf-and-toString/",
        "title": "隐式转换的的部分奥秘-valueOf&toSring"
      },
      "mc-服务器更新相关": {
        "name": "mc-服务器更新相关",
        "type": "file",
        "fileId": "archives/2019/mc-服务器更新相关",
        "folderPath": "archives/2019",
        "permalink": "/2019/06/30/2019/mc/",
        "title": "MC 服务器更新相关"
      },
      "safari的带二维码的图片无法下载": {
        "name": "safari的带二维码的图片无法下载",
        "type": "file",
        "fileId": "archives/2019/safari的带二维码的图片无法下载",
        "folderPath": "archives/2019",
        "permalink": "/2019/03/28/2019/download-fail-with-qrcode-on-safari/",
        "title": "safari的带二维码的图片无法下载"
      },
      "workbox-使用指北": {
        "name": "workbox-使用指北",
        "type": "file",
        "fileId": "archives/2019/workbox-使用指北",
        "folderPath": "archives/2019",
        "permalink": "/2019/03/27/2019/guide-of-workbox/",
        "title": "workbox 使用指北"
      },
      "几个不常用-web-api-整理": {
        "name": "几个不常用-web-api-整理",
        "type": "file",
        "fileId": "archives/2019/几个不常用-web-api-整理",
        "folderPath": "archives/2019",
        "permalink": "/2019/06/12/2019/seldom-web-api/",
        "title": "几个不常用 web api 整理"
      },
      "选饭问卷系统介绍": {
        "name": "选饭问卷系统介绍",
        "type": "file",
        "fileId": "archives/2019/选饭问卷系统介绍",
        "folderPath": "archives/2019",
        "permalink": "/2019/06/14/2019/xd-meal/",
        "title": "选饭问卷系统介绍"
      },
      "indexdb-初用解析--dexie": {
        "name": "indexdb-初用解析--dexie",
        "type": "file",
        "fileId": "archives/2020/indexdb-初用解析--dexie",
        "folderPath": "archives/2020",
        "permalink": "/2020/07/04/2020/dexiejs/",
        "title": "IndexDB 初用解析 & Dexie"
      },
      "url-地址栏的长度上限": {
        "name": "url-地址栏的长度上限",
        "type": "file",
        "fileId": "archives/2020/url-地址栏的长度上限",
        "folderPath": "archives/2020",
        "permalink": "/2020/05/06/2020/max-length-of-url/",
        "title": "url 地址栏的长度上限"
      },
      "如何让sass自动化的载入-2x-图片": {
        "name": "如何让sass自动化的载入-2x-图片",
        "type": "file",
        "fileId": "archives/2018/如何让sass自动化的载入-2x-图片",
        "folderPath": "archives/2018",
        "permalink": "/2018/09/26/2018/auto-bg-with-sass/",
        "title": "如何让sass自动化的载入 2x 图片"
      },
      "如何避免hover的背景图片在首次点击时出现闪烁": {
        "name": "如何避免hover的背景图片在首次点击时出现闪烁",
        "type": "file",
        "fileId": "archives/2018/如何避免hover的背景图片在首次点击时出现闪烁",
        "folderPath": "archives/2018",
        "permalink": "/2018/09/27/2018/avoid-flash-on-hovered-background/",
        "title": "如何避免 hover 的背景图片在首次点击时出现闪烁"
      },
      "记一些常用的小脚本": {
        "name": "记一些常用的小脚本",
        "type": "file",
        "fileId": "archives/2020/记一些常用的小脚本",
        "folderPath": "archives/2020",
        "permalink": "/2020/03/08/2020/normal-script/",
        "title": "记一些常用的小脚本"
      },
      "notion-blog": {
        "name": "notion-blog",
        "type": "file",
        "fileId": "archives/2021/notion-blog",
        "folderPath": "archives/2021",
        "permalink": "/2021/11/14/2021/notion-blog/",
        "title": "notion blog"
      },
      "2021年年度总结": {
        "name": "2021年年度总结",
        "type": "file",
        "fileId": "archives/2022/2021年年度总结",
        "folderPath": "archives/2022",
        "permalink": "/2021/11/25/2022/2021-annual-report/",
        "title": "2021年年度总结"
      },
      "js-实现流程任务执行": {
        "name": "js-实现流程任务执行",
        "type": "file",
        "fileId": "archives/2022/js-实现流程任务执行",
        "folderPath": "archives/2022",
        "permalink": "/2022/js-job-runner/",
        "title": "js 实现流程任务执行"
      },
      "lunar-vim": {
        "name": "lunar-vim",
        "type": "file",
        "fileId": "archives/2022/lunar-vim",
        "folderPath": "archives/2022",
        "permalink": "/2022/02/08/2022/lunar-vim/",
        "title": "现代 vim 编辑器指北"
      },
      "volar更新正式版本": {
        "name": "volar更新正式版本",
        "type": "file",
        "fileId": "archives/2022/volar更新正式版本",
        "folderPath": "archives/2022",
        "permalink": "/2022/volar-1.0/",
        "title": "volar更新正式版本！"
      },
      "vue27-升级指南": {
        "name": "vue27-升级指南",
        "type": "file",
        "fileId": "archives/2022/vue27-升级指南",
        "folderPath": "archives/2022",
        "permalink": "/2022/vue-2.7-upgrade-guide/",
        "title": "vue2.7 升级指南"
      },
      "vscode-vim-配置": {
        "name": "vscode-vim-配置",
        "type": "file",
        "fileId": "archives/2022/vscode-vim-配置",
        "folderPath": "archives/2022",
        "permalink": "/2022/vscode-vim-config/",
        "title": "vscode vim 配置"
      },
      "webpack5-资源处理上的小差异": {
        "name": "webpack5-资源处理上的小差异",
        "type": "file",
        "fileId": "archives/2022/webpack5-资源处理上的小差异",
        "folderPath": "archives/2022",
        "permalink": "/2022/wepack5-asset-diff/",
        "title": "webpack5 资源处理上的小差异"
      },
      "如何在-webview-中调用-javascript": {
        "name": "如何在-webview-中调用-javascript",
        "type": "file",
        "fileId": "archives/2020/如何在-webview-中调用-javascript",
        "folderPath": "archives/2020",
        "permalink": "/2020/05/04/2020/call-js-for-android/",
        "title": "如何在 webview 中调用 javascript"
      },
      "通过-webview-传输图片给-android": {
        "name": "通过-webview-传输图片给-android",
        "type": "file",
        "fileId": "archives/2020/通过-webview-传输图片给-android",
        "folderPath": "archives/2020",
        "permalink": "/2020/05/05/2020/pass-image-to-android/",
        "title": "通过 webview 传输图片给 android"
      },
      "使用-esbuild-略微的提升一下老项目的构建体验": {
        "name": "使用-esbuild-略微的提升一下老项目的构建体验",
        "type": "file",
        "fileId": "archives/2022/使用-esbuild-略微的提升一下老项目的构建体验",
        "folderPath": "archives/2022",
        "permalink": "/2022/esbuild-speed-up-project/",
        "title": "使用 esbuild 略微的提升一下老项目的构建体验"
      },
      "基于-decorators-的-ant-design-vue-表单验证声明优化思路": {
        "name": "基于-decorators-的-ant-design-vue-表单验证声明优化思路",
        "type": "file",
        "fileId": "archives/2022/基于-decorators-的-ant-design-vue-表单验证声明优化思路",
        "folderPath": "archives/2022",
        "permalink": "/2022/05/19/2022/class-validator/",
        "title": "基于 decorators 的 ant-design-vue 表单验证声明优化思路"
      },
      "前端大数字精度丢失问题": {
        "name": "前端大数字精度丢失问题",
        "type": "file",
        "fileId": "archives/2022/前端大数字精度丢失问题",
        "folderPath": "archives/2022",
        "permalink": "/2022/js-bigint-error/",
        "title": "前端大数字精度丢失问题"
      },
      "斐波那契数列算法时间复杂度": {
        "name": "斐波那契数列算法时间复杂度",
        "type": "file",
        "fileId": "archives/2022/斐波那契数列算法时间复杂度",
        "folderPath": "archives/2022",
        "permalink": "/2022/fibonacci/",
        "title": "斐波那契数列算法时间复杂度"
      },
      "有史以来最好用的-markdown-编辑器--obsidian": {
        "name": "有史以来最好用的-markdown-编辑器--obsidian",
        "type": "file",
        "fileId": "archives/2022/有史以来最好用的-markdown-编辑器--obsidian",
        "folderPath": "archives/2022",
        "permalink": "/2022/obsidian/",
        "title": "有史以来最好用的 markdown 编辑器 —— obsidian"
      },
      "vue2712中使用-watch-观察数组对象将会触发多次": {
        "name": "vue2712中使用-watch-观察数组对象将会触发多次",
        "type": "file",
        "fileId": "archives/2023/vue2712中使用-watch-观察数组对象将会触发多次",
        "folderPath": "archives/2023",
        "permalink": "/2023/vue-watch-bug-for-array-obj/",
        "title": "vue2.7.12中使用 watch 观察数组对象将会触发多次"
      },
      "mono-项目最佳实践指南": {
        "name": "mono-项目最佳实践指南",
        "type": "file",
        "fileId": "archives/2024/mono-项目最佳实践指南",
        "folderPath": "archives/2024",
        "permalink": "/2024/monorepo-best-practices/",
        "title": "mono 项目最佳实践指南"
      },
      "rss-订阅": {
        "name": "rss-订阅",
        "type": "file",
        "fileId": "杂记/博客开发与维护/rss-订阅",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/rss/",
        "title": "RSS 订阅说明"
      },
      "quartz关系图谱优化": {
        "name": "quartz关系图谱优化",
        "type": "file",
        "fileId": "杂记/博客开发与维护/quartz关系图谱优化",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/quartz-graph-pref/",
        "title": "quartz 关系图谱优化"
      },
      "quartz插件加载更多功能": {
        "name": "quartz插件加载更多功能",
        "type": "file",
        "fileId": "杂记/博客开发与维护/quartz插件加载更多功能",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/dev/quartz-plugin-script/",
        "title": "quartz插件加载更多功能"
      },
      "为-quartz-添加额外-shikijs-transform": {
        "name": "为-quartz-添加额外-shikijs-transform",
        "type": "file",
        "fileId": "杂记/博客开发与维护/为-quartz-添加额外-shikijs-transform",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/quartz-shikijs-transform/",
        "title": "为 quartz 添加额外 shikijs transform"
      },
      "动态脚本加载": {
        "name": "动态脚本加载",
        "type": "file",
        "fileId": "杂记/博客开发与维护/动态脚本加载",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/dev/script/",
        "title": "quartz中使用动态脚本加载"
      },
      "我的云服务器被烧了": {
        "name": "我的云服务器被烧了",
        "type": "file",
        "fileId": "杂记/博客开发与维护/我的云服务器被烧了",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/server-down/",
        "title": "我的云服务器被烧了"
      },
      "我让ai重写了一遍博客": {
        "name": "我让ai重写了一遍博客",
        "type": "file",
        "fileId": "杂记/博客开发与维护/我让ai重写了一遍博客",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/ai-rewrite-blog/",
        "title": "我让 AI 重写了一遍博客"
      },
      "服务器配置迁移记录": {
        "name": "服务器配置迁移记录",
        "type": "file",
        "fileId": "杂记/博客开发与维护/服务器配置迁移记录",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/server-migration/",
        "title": "服务器配置迁移记录"
      },
      "重新谈谈字体加载": {
        "name": "重新谈谈字体加载",
        "type": "file",
        "fileId": "杂记/博客开发与维护/重新谈谈字体加载",
        "folderPath": "杂记/博客开发与维护",
        "permalink": "/blog/font-load/",
        "title": "重新谈谈字体加载"
      },
      "测试加密": {
        "name": "测试加密",
        "type": "file",
        "fileId": "杂记/实验室/测试加密",
        "folderPath": "杂记/实验室",
        "permalink": "/test/encryption/",
        "title": "测试加密文档"
      },
      "党委会的工作方法": {
        "name": "党委会的工作方法",
        "type": "file",
        "fileId": "知识库/书籍/党委会的工作方法",
        "folderPath": "知识库/书籍",
        "permalink": "/books/chinese-mao-19490313/",
        "title": "党委会的工作方法"
      },
      "游戏设计模式": {
        "name": "游戏设计模式",
        "type": "file",
        "fileId": "知识库/书籍/游戏设计模式",
        "folderPath": "知识库/书籍",
        "permalink": "/knowledge-base/books/game-design-patterns/",
        "title": "游戏设计模式"
      },
      "case_anthropic降价风波与ai定价权悖论": {
        "name": "case_anthropic降价风波与ai定价权悖论",
        "type": "file",
        "fileId": "知识库/卡片库/case_anthropic降价风波与ai定价权悖论",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/anthropic-pricing-paradox/",
        "title": "Anthropic 降价风波与 AI 企业的定价权悖论"
      },
      "case_openclaw与ai社区工具的高速迭代验证": {
        "name": "case_openclaw与ai社区工具的高速迭代验证",
        "type": "file",
        "fileId": "知识库/卡片库/case_openclaw与ai社区工具的高速迭代验证",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/openclaw-community-iteration/",
        "title": "OpenClaw 与 AI 社区工具的高速迭代验证"
      },
      "case_spacex与航天验证哲学的反转": {
        "name": "case_spacex与航天验证哲学的反转",
        "type": "file",
        "fileId": "知识库/卡片库/case_spacex与航天验证哲学的反转",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/spacex-validation-philosophy/",
        "title": "SpaceX 与航天验证哲学的反转"
      },
      "case_人类计算员的消亡与组织中空化": {
        "name": "case_人类计算员的消亡与组织中空化",
        "type": "file",
        "fileId": "知识库/卡片库/case_人类计算员的消亡与组织中空化",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/human-computers-hollowing-out/",
        "title": "人类计算员的消亡与组织中空化"
      },
      "case_小猫补光灯与ai手搓应用的爆发": {
        "name": "case_小猫补光灯与ai手搓应用的爆发",
        "type": "file",
        "fileId": "知识库/卡片库/case_小猫补光灯与ai手搓应用的爆发",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/kitten-fill-light-ai-app-boom/",
        "title": "小猫补光灯与 AI 手搓应用的爆发"
      },
      "case_死了么app与独居安全工具的情绪需求": {
        "name": "case_死了么app与独居安全工具的情绪需求",
        "type": "file",
        "fileId": "知识库/卡片库/case_死了么app与独居安全工具的情绪需求",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/dead-yet-app-and-living-alone-anxiety/",
        "title": "死了么 App 与独居安全工具的情绪需求"
      },
      "case_现代制药高通量筛选与idea贬值": {
        "name": "case_现代制药高通量筛选与idea贬值",
        "type": "file",
        "fileId": "知识库/卡片库/case_现代制药高通量筛选与idea贬值",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/pharma-hts-idea-depreciation/",
        "title": "现代制药高通量筛选与 Idea 的物理贬值"
      },
      "case_终末地paypal支付事故": {
        "name": "case_终末地paypal支付事故",
        "type": "file",
        "fileId": "知识库/卡片库/case_终末地paypal支付事故",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/case/endfield-paypal-incident/",
        "title": "终末地 Paypal 支付事故"
      },
      "如何用-csharp-阻止-windows-电脑休眠": {
        "name": "如何用-csharp-阻止-windows-电脑休眠",
        "type": "file",
        "fileId": "知识库/csharp/如何用-csharp-阻止-windows-电脑休眠",
        "folderPath": "知识库/csharp",
        "permalink": "/code/how-prevent-windows-sleep/",
        "title": "如何用 csharp 阻止 windows  电脑休眠"
      },
      "cmp_中美历史文化差异": {
        "name": "cmp_中美历史文化差异",
        "type": "file",
        "fileId": "知识库/卡片库/cmp_中美历史文化差异",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/comparison/us-china-cultural-history/",
        "title": "中美历史文化差异"
      },
      "cmp_中美社会制度对比": {
        "name": "cmp_中美社会制度对比",
        "type": "file",
        "fileId": "知识库/卡片库/cmp_中美社会制度对比",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/comparison/us-china-social-systems/",
        "title": "中美社会制度对比"
      },
      "con_美国斩杀线": {
        "name": "con_美国斩杀线",
        "type": "file",
        "fileId": "知识库/卡片库/con_美国斩杀线",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/concept/us-killing-line/",
        "title": "美国斩杀线"
      },
      "idea_电磁力修仙世界": {
        "name": "idea_电磁力修仙世界",
        "type": "file",
        "fileId": "知识库/卡片库/idea_电磁力修仙世界",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/idea/electromagnetic-cultivation-world/",
        "title": "电磁力修仙世界"
      },
      "insight_ai时代的idea贬值与验证基础设施": {
        "name": "insight_ai时代的idea贬值与验证基础设施",
        "type": "file",
        "fileId": "知识库/卡片库/insight_ai时代的idea贬值与验证基础设施",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/ai-idea-depreciation/",
        "title": "AI 时代的 idea 贬值与验证基础设施"
      },
      "insight_ai时代的定价权悖论": {
        "name": "insight_ai时代的定价权悖论",
        "type": "file",
        "fileId": "知识库/卡片库/insight_ai时代的定价权悖论",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/ai-pricing-power-paradox/",
        "title": "AI 时代的定价权悖论"
      },
      "insight_ai时代的工程护城河": {
        "name": "insight_ai时代的工程护城河",
        "type": "file",
        "fileId": "知识库/卡片库/insight_ai时代的工程护城河",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/engineering-moats-in-ai-era/",
        "title": "AI 时代的工程护城河"
      },
      "insight_ai时代的开发疲劳与决策成本": {
        "name": "insight_ai时代的开发疲劳与决策成本",
        "type": "file",
        "fileId": "知识库/卡片库/insight_ai时代的开发疲劳与决策成本",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/ai-fatigue-and-decision-cost/",
        "title": "AI 时代的开发疲劳：低生产成本与高决策成本"
      },
      "insight_ai时代的无产阶级概念更新": {
        "name": "insight_ai时代的无产阶级概念更新",
        "type": "file",
        "fileId": "知识库/卡片库/insight_ai时代的无产阶级概念更新",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/proletariat-in-ai-era/",
        "title": "AI时代的无产阶级概念更新"
      },
      "insight_ai时代验证系统的建造者与被编排者": {
        "name": "insight_ai时代验证系统的建造者与被编排者",
        "type": "file",
        "fileId": "知识库/卡片库/insight_ai时代验证系统的建造者与被编排者",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/ai-era-builders-and-orchestrated/",
        "title": "AI 时代验证系统的建造者与被编排者"
      },
      "insight_ai模型的知识壁垒坍塌与资源悖论": {
        "name": "insight_ai模型的知识壁垒坍塌与资源悖论",
        "type": "file",
        "fileId": "知识库/卡片库/insight_ai模型的知识壁垒坍塌与资源悖论",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/ai-model-barrier-collapse/",
        "title": "AI 模型的知识壁垒坍塌与资源悖论"
      },
      "insight_制度底层差异中的资本逻辑": {
        "name": "insight_制度底层差异中的资本逻辑",
        "type": "file",
        "fileId": "知识库/卡片库/insight_制度底层差异中的资本逻辑",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/capital-logic-in-risk-distribution/",
        "title": "制度底色：风险“个体化”与“社会化”的资本逻辑"
      },
      "insight_卢曼编号的过时性": {
        "name": "insight_卢曼编号的过时性",
        "type": "file",
        "fileId": "知识库/卡片库/insight_卢曼编号的过时性",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/obsolescence-of-luhmann-numbering/",
        "title": "卢曼式编号的过时性：AI 时代的索引变革"
      },
      "insight_在吃汉堡比赛中输赢并不重要": {
        "name": "insight_在吃汉堡比赛中输赢并不重要",
        "type": "file",
        "fileId": "知识库/卡片库/insight_在吃汉堡比赛中输赢并不重要",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/hamburger-eating-and-life-meaning/",
        "title": "在吃汉堡比赛中，输赢并不重要"
      },
      "insight_收入剪刀差与阶级体感": {
        "name": "insight_收入剪刀差与阶级体感",
        "type": "file",
        "fileId": "知识库/卡片库/insight_收入剪刀差与阶级体感",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/income-scissors-difference/",
        "title": "收入剪刀差与阶级体感"
      },
      "insight_时间的非对称性": {
        "name": "insight_时间的非对称性",
        "type": "file",
        "fileId": "知识库/卡片库/insight_时间的非对称性",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/asymmetry-of-time/",
        "title": "时间的非对称性与焦虑根源"
      },
      "insight_毛选中的社会矛盾与群众思想": {
        "name": "insight_毛选中的社会矛盾与群众思想",
        "type": "file",
        "fileId": "知识库/卡片库/insight_毛选中的社会矛盾与群众思想",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/mao-selected-works-social-contradictions/",
        "title": "毛选中的社会矛盾与群众思想"
      },
      "insight_消失的收集箱": {
        "name": "insight_消失的收集箱",
        "type": "file",
        "fileId": "知识库/卡片库/insight_消失的收集箱",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/the-disappearing-inbox/",
        "title": "消失的收集箱：AI 时代的延迟零加工"
      },
      "insight_玩着不那么爽快的终末地": {
        "name": "insight_玩着不那么爽快的终末地",
        "type": "file",
        "fileId": "知识库/卡片库/insight_玩着不那么爽快的终末地",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/endfield-not-satisfying/",
        "title": "玩着不那么爽快的终末地"
      },
      "insight_消费主义下的性别与阶级疏离": {
        "name": "insight_消费主义下的性别与阶级疏离",
        "type": "file",
        "fileId": "知识库/卡片库/insight_消费主义下的性别与阶级疏离",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/gender-roles-and-class-alienation/",
        "title": "消费主义语境下的性别角色与阶级疏离"
      },
      "insight_私有数据与垂类领域的agent长效壁垒": {
        "name": "insight_私有数据与垂类领域的agent长效壁垒",
        "type": "file",
        "fileId": "知识库/卡片库/insight_私有数据与垂类领域的agent长效壁垒",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/private-data-vertical-moat/",
        "title": "私有数据与垂类领域的 Agent 长效壁垒"
      },
      "insight_程序员的产出蒸馏与个人定价权悖论": {
        "name": "insight_程序员的产出蒸馏与个人定价权悖论",
        "type": "file",
        "fileId": "知识库/卡片库/insight_程序员的产出蒸馏与个人定价权悖论",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-library/insight/programmer-output-distillation-paradox/",
        "title": "程序员的产出蒸馏与个人定价权悖论"
      },
      "insight_自我再抚育": {
        "name": "insight_自我再抚育",
        "type": "file",
        "fileId": "知识库/卡片库/insight_自我再抚育",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/self-reparenting/",
        "title": "自我再抚育：把自己当成孩子重新养育一遍"
      },
      "insight_编程范式对ai理解力的影响": {
        "name": "insight_编程范式对ai理解力的影响",
        "type": "file",
        "fileId": "知识库/卡片库/insight_编程范式对ai理解力的影响",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/programming-paradigms-effect-on-ai/",
        "title": "编程范式对 AI 理解力的影响：为何 FP 优于 OOP"
      },
      "insight_赛博朋克式的原生绝望": {
        "name": "insight_赛博朋克式的原生绝望",
        "type": "file",
        "fileId": "知识库/卡片库/insight_赛博朋克式的原生绝望",
        "folderPath": "知识库/卡片库",
        "permalink": "/card-box/insight/cyberpunk-native-despair/",
        "title": "赛博朋克式的原生绝望"
      },
      "3-2-1备份原则": {
        "name": "3-2-1备份原则",
        "type": "file",
        "fileId": "知识库/名词/3-2-1备份原则",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/rule-of-backup-3-2-1/",
        "title": "3-2-1 备份原则"
      },
      "ai-蒸馏": {
        "name": "ai-蒸馏",
        "type": "file",
        "fileId": "知识库/名词/ai-蒸馏",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/ai-distillation/",
        "title": "AI 蒸馏"
      },
      "cc-协议": {
        "name": "cc-协议",
        "type": "file",
        "fileId": "知识库/名词/cc-协议",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/cc/",
        "title": "CC 协议"
      },
      "d-bus": {
        "name": "d-bus",
        "type": "file",
        "fileId": "知识库/名词/d-bus",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/d-bus/",
        "title": "D-Bus"
      },
      "fido": {
        "name": "fido",
        "type": "file",
        "fileId": "知识库/名词/fido",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/FIDO/",
        "title": "FIDO身份验证"
      },
      "gpt": {
        "name": "gpt",
        "type": "file",
        "fileId": "知识库/名词/gpt",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/gpt/",
        "title": "GPT"
      },
      "infrastructure-as-code": {
        "name": "infrastructure-as-code",
        "type": "file",
        "fileId": "知识库/名词/infrastructure-as-code",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/infrastructure-as-code/",
        "title": "Infrastructure as Code"
      },
      "model-context-protocol": {
        "name": "model-context-protocol",
        "type": "file",
        "fileId": "知识库/名词/model-context-protocol",
        "folderPath": "知识库/名词",
        "permalink": "/knowledge/model-context-protocol/",
        "title": "Model Context Protocol"
      },
      "openai": {
        "name": "openai",
        "type": "file",
        "fileId": "知识库/名词/openai",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/open-ai/",
        "title": "OpenAI"
      },
      "vibe-coding": {
        "name": "vibe-coding",
        "type": "file",
        "fileId": "知识库/名词/vibe-coding",
        "folderPath": "知识库/名词",
        "permalink": "/knowledge/vibe-coding/",
        "title": "Vibe Coding"
      },
      "monorepo": {
        "name": "monorepo",
        "type": "file",
        "fileId": "知识库/名词/monorepo",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/monorepo/",
        "title": "monorepo"
      },
      "polyrepo": {
        "name": "polyrepo",
        "type": "file",
        "fileId": "知识库/名词/polyrepo",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/polyrepo/",
        "title": "polyrepo"
      },
      "不安全反序列化漏洞": {
        "name": "不安全反序列化漏洞",
        "type": "file",
        "fileId": "知识库/名词/不安全反序列化漏洞",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/insecure-deserialization/",
        "title": "不安全反序列化漏洞"
      },
      "大语言模型": {
        "name": "大语言模型",
        "type": "file",
        "fileId": "知识库/名词/大语言模型",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/LLM/",
        "title": "大语言模型"
      },
      "皮格马利翁效应": {
        "name": "皮格马利翁效应",
        "type": "file",
        "fileId": "知识库/名词/皮格马利翁效应",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/pygmalion-effect/",
        "title": "皮格马利翁效应"
      },
      "端到端加密": {
        "name": "端到端加密",
        "type": "file",
        "fileId": "知识库/名词/端到端加密",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/e2ee/",
        "title": "端到端加密"
      },
      "范式": {
        "name": "范式",
        "type": "file",
        "fileId": "知识库/名词/范式",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/paradigm/",
        "title": "范式"
      },
      "通行密钥": {
        "name": "通行密钥",
        "type": "file",
        "fileId": "知识库/名词/通行密钥",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/passkey/",
        "title": "通行密钥"
      },
      "非对称加密": {
        "name": "非对称加密",
        "type": "file",
        "fileId": "知识库/名词/非对称加密",
        "folderPath": "知识库/名词",
        "permalink": "/terminology/asymmetric encryption/",
        "title": "非对称加密"
      },
      "怎样带好一个团队": {
        "name": "怎样带好一个团队",
        "type": "file",
        "fileId": "知识库/思考/怎样带好一个团队",
        "folderPath": "知识库/思考",
        "permalink": "/thinking/lead-team-effectively/",
        "title": "怎样带好一个团队"
      },
      "又一个玩家社区的消亡": {
        "name": "又一个玩家社区的消亡",
        "type": "file",
        "fileId": "知识库/思考/又一个玩家社区的消亡",
        "folderPath": "知识库/思考",
        "permalink": "/thinking/another-gaming-community-disappears/",
        "title": "又一个玩家社区的消亡 - mcbbs"
      },
      "新时代下的打工人将何去何从": {
        "name": "新时代下的打工人将何去何从",
        "type": "file",
        "fileId": "知识库/思考/新时代下的打工人将何去何从",
        "folderPath": "知识库/思考",
        "permalink": "/thinking/future-of-workers/",
        "title": "新时代下的打工人将何去何从？"
      },
      "如何解决服务器启动时挂载硬盘失败": {
        "name": "如何解决服务器启动时挂载硬盘失败",
        "type": "file",
        "fileId": "知识库/服务器维护/如何解决服务器启动时挂载硬盘失败",
        "folderPath": "知识库/服务器维护",
        "permalink": "/linux/fstab-fail/",
        "title": "如何解决服务器启动时挂载硬盘失败"
      },
      "结婚不需要户口本热议的背后问题": {
        "name": "结婚不需要户口本热议的背后问题",
        "type": "file",
        "fileId": "知识库/思考/结婚不需要户口本热议的背后问题",
        "folderPath": "知识库/思考",
        "permalink": "/thought/marriage/",
        "title": "结婚不需要户口本热议的背后问题"
      },
      "vscode-file-nesting-config": {
        "name": "vscode-file-nesting-config",
        "type": "file",
        "fileId": "知识库/效率工具/vscode-file-nesting-config",
        "folderPath": "知识库/效率工具",
        "permalink": "/tools/vscode-file-nesting-config/",
        "title": "使用 vscode 的 File Nesting config 来收起不重要的衍生文件"
      },
      "systemd": {
        "name": "systemd",
        "type": "file",
        "fileId": "知识库/效率工具/systemd",
        "folderPath": "知识库/效率工具",
        "permalink": "/tools/systemd/",
        "title": "systemd"
      },
      "基于openapi规范的前后端接口开发工具链": {
        "name": "基于openapi规范的前后端接口开发工具链",
        "type": "file",
        "fileId": "知识库/效率工具/基于openapi规范的前后端接口开发工具链",
        "folderPath": "知识库/效率工具",
        "permalink": "/code/openapi-based-api-development-toolchain/",
        "title": "基于 OpenAPI 规范的前后端接口开发工具链"
      },
      "我在用的一些免费的-serverless-服务": {
        "name": "我在用的一些免费的-serverless-服务",
        "type": "file",
        "fileId": "知识库/效率工具/我在用的一些免费的-serverless-服务",
        "folderPath": "知识库/效率工具",
        "permalink": "/tool/free-serverless/",
        "title": "我在用的一些免费的 serverless 服务"
      },
      "网站可访问检测": {
        "name": "网站可访问检测",
        "type": "file",
        "fileId": "知识库/效率工具/网站可访问检测",
        "folderPath": "知识库/效率工具",
        "permalink": "/blog/status/",
        "title": "网站可访问检测"
      },
      "bitwarden": {
        "name": "bitwarden",
        "type": "file",
        "fileId": "知识库/效率工具/bitwarden",
        "folderPath": "知识库/效率工具",
        "permalink": "/code/try-to-use-bitwarden/",
        "title": "试试用 bitwarden 来管理你的密码"
      },
      "obsidian常用配置指南": {
        "name": "obsidian常用配置指南",
        "type": "file",
        "fileId": "知识库/效率工具/obsidian常用配置指南",
        "folderPath": "知识库/效率工具",
        "permalink": "/2024/obsidian-plugin/",
        "title": "obsidian常用配置指南"
      },
      "笔记日程同步到google-calendar": {
        "name": "笔记日程同步到google-calendar",
        "type": "file",
        "fileId": "知识库/效率工具/笔记日程同步到google-calendar",
        "folderPath": "知识库/效率工具",
        "permalink": "/2024/markdown-calendar-sync/",
        "title": "Obsidian 笔记日程同步到 Google Calendar"
      },
      "基于gpt-4o的表格模板生成": {
        "name": "基于gpt-4o的表格模板生成",
        "type": "file",
        "fileId": "知识库/效率工具/基于gpt-4o的表格模板生成",
        "folderPath": "知识库/效率工具",
        "permalink": "/tool/gpt4o-table-template/",
        "title": "基于GPT-4o的表格模板生成"
      },
      "未来已来---基于-cursor-的-ai-code-review": {
        "name": "未来已来---基于-cursor-的-ai-code-review",
        "type": "file",
        "fileId": "知识库/效率工具/未来已来---基于-cursor-的-ai-code-review",
        "folderPath": "知识库/效率工具",
        "permalink": "/knowledge/efficiency-tool/future-ai-code-review-with-cursor/",
        "title": "未来已来？-- 基于 cursor 的 ai code review"
      },
      "卡片库规范": {
        "name": "卡片库规范",
        "type": "file",
        "fileId": "知识库/知识管理/卡片库规范",
        "folderPath": "知识库/知识管理",
        "permalink": "/knowledge-management/card-library-specification/",
        "title": "卡片库规范"
      },
      "卡片笔记法": {
        "name": "卡片笔记法",
        "type": "file",
        "fileId": "知识库/知识管理/卡片笔记法",
        "folderPath": "知识库/知识管理",
        "permalink": "/knowledge-management/zettelkasten-method/",
        "title": "卢曼卡片笔记法"
      },
      "卡片笔记法与ai": {
        "name": "卡片笔记法与ai",
        "type": "file",
        "fileId": "知识库/知识管理/卡片笔记法与ai",
        "folderPath": "知识库/知识管理",
        "permalink": "/knowledge-management/zettelkasten-in-ai-era/",
        "title": "AI 时代的卡片笔记法"
      },
      "卡片笔记法的优劣": {
        "name": "卡片笔记法的优劣",
        "type": "file",
        "fileId": "知识库/知识管理/卡片笔记法的优劣",
        "folderPath": "知识库/知识管理",
        "permalink": "/knowledge-management/zettelkasten-pros-cons/",
        "title": "卡片笔记法的优势与劣势"
      },
      "godot-autoloads以及-csharp-单例模式": {
        "name": "godot-autoloads以及-csharp-单例模式",
        "type": "file",
        "fileId": "知识库/游戏开发/godot-autoloads以及-csharp-单例模式",
        "folderPath": "知识库/游戏开发",
        "permalink": "/game-dev/godot-autoloads-and-csharp/",
        "title": "Godot autoload 以及 csharp 单例模式"
      },
      "静态部署工具": {
        "name": "静态部署工具",
        "type": "file",
        "fileId": "知识库/效率工具/静态部署工具",
        "folderPath": "知识库/效率工具",
        "permalink": "/2024/static-deploy-tool/",
        "title": "静态部署工具"
      },
      "godot4-csharp-单例获取": {
        "name": "godot4-csharp-单例获取",
        "type": "file",
        "fileId": "知识库/游戏开发/godot4-csharp-单例获取",
        "folderPath": "知识库/游戏开发",
        "permalink": "/2024/godot4-singleton/",
        "title": "godot4 C# 单例获取节点"
      },
      "游戏开发": {
        "name": "游戏开发",
        "type": "file",
        "fileId": "知识库/游戏开发",
        "folderPath": "知识库",
        "permalink": "/game-developer/",
        "title": "游戏开发"
      },
      "在-godot4-中实现异步场景加载": {
        "name": "在-godot4-中实现异步场景加载",
        "type": "file",
        "fileId": "知识库/游戏开发/在-godot4-中实现异步场景加载",
        "folderPath": "知识库/游戏开发",
        "permalink": "/2024/godot-loading-scene/",
        "title": "在 godot4 中实现异步场景加载"
      },
      "实现一个简单的对话框功能": {
        "name": "实现一个简单的对话框功能",
        "type": "file",
        "fileId": "知识库/游戏开发/实现一个简单的对话框功能",
        "folderPath": "知识库/游戏开发",
        "permalink": "/godot/bag-system/dialog/",
        "title": "godot4.3 中使用 csharp 实现一个简单的对话框功能"
      },
      "link-rot": {
        "name": "link-rot",
        "type": "file",
        "fileId": "知识库/其他/link-rot",
        "folderPath": "知识库/其他",
        "permalink": "/link-rot/",
        "title": "链接丢失"
      },
      "库伯勒-罗丝模型": {
        "name": "库伯勒-罗丝模型",
        "type": "file",
        "fileId": "知识库/其他/库伯勒-罗丝模型",
        "folderPath": "知识库/其他",
        "permalink": "/knowledge-base/other/kubler-ross-model/",
        "title": "库伯勒-罗丝模型"
      },
      "熵增定律": {
        "name": "熵增定律",
        "type": "file",
        "fileId": "知识库/其他/熵增定律",
        "folderPath": "知识库/其他",
        "permalink": "/knowledge-base/other/entropy-increase-law/",
        "title": "熵增定律"
      },
      "鸵鸟方案": {
        "name": "鸵鸟方案",
        "type": "file",
        "fileId": "知识库/其他/鸵鸟方案",
        "folderPath": "知识库/其他",
        "permalink": "/other/ostrich-solution/",
        "title": "鸵鸟方案"
      },
      "api查询语言": {
        "name": "api查询语言",
        "type": "file",
        "fileId": "知识库/编程/api查询语言",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/api-query-language/",
        "title": "API查询语言"
      },
      "idl": {
        "name": "idl",
        "type": "file",
        "fileId": "知识库/编程/idl",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/interface-definition-language/",
        "title": "IDL"
      },
      "node-特性支持表": {
        "name": "node-特性支持表",
        "type": "file",
        "fileId": "知识库/编程/node-特性支持表",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/node-feature-support-table/",
        "title": "node 特性支持表"
      },
      "tc39": {
        "name": "tc39",
        "type": "file",
        "fileId": "知识库/编程/tc39",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/tc39/",
        "title": "tc39"
      },
      "主干开发": {
        "name": "主干开发",
        "type": "file",
        "fileId": "知识库/编程/主干开发",
        "folderPath": "知识库/编程",
        "permalink": "/code/trunk-based-development/",
        "title": "主干开发"
      },
      "代码维护的可规模化": {
        "name": "代码维护的可规模化",
        "type": "file",
        "fileId": "知识库/编程/代码维护的可规模化",
        "folderPath": "知识库/编程",
        "permalink": "/2022/scalable-code-maintenance/",
        "title": "代码维护的可规模化"
      },
      "伪代码": {
        "name": "伪代码",
        "type": "file",
        "fileId": "知识库/编程/伪代码",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/pseudocode/",
        "title": "伪代码"
      },
      "依赖地狱": {
        "name": "依赖地狱",
        "type": "file",
        "fileId": "知识库/编程/依赖地狱",
        "folderPath": "知识库/编程",
        "permalink": "/code/dependency-hell/",
        "title": "依赖地狱"
      },
      "单一版本": {
        "name": "单一版本",
        "type": "file",
        "fileId": "知识库/编程/单一版本",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/single-source-of-truth/",
        "title": "单一版本"
      },
      "单例模式": {
        "name": "单例模式",
        "type": "file",
        "fileId": "知识库/编程/单例模式",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/design-patterns/singleton-pattern/",
        "title": "单例模式"
      },
      "单可信源": {
        "name": "单可信源",
        "type": "file",
        "fileId": "知识库/编程/单可信源",
        "folderPath": "知识库/编程",
        "permalink": "/code/ssot/",
        "title": "单可信源"
      },
      "康威定律": {
        "name": "康威定律",
        "type": "file",
        "fileId": "知识库/编程/康威定律",
        "folderPath": "知识库/编程",
        "permalink": "/code/conway-Law/",
        "title": "康威定律"
      },
      "没有银弹": {
        "name": "没有银弹",
        "type": "file",
        "fileId": "知识库/编程/没有银弹",
        "folderPath": "知识库/编程",
        "permalink": "/no-silver-bullet/",
        "title": "没有银弹"
      },
      "浅谈代码质量": {
        "name": "浅谈代码质量",
        "type": "file",
        "fileId": "知识库/编程/浅谈代码质量",
        "folderPath": "知识库/编程",
        "permalink": "/2022/code-quality/",
        "title": "浅谈代码质量"
      },
      "类型体操": {
        "name": "类型体操",
        "type": "file",
        "fileId": "知识库/编程/类型体操",
        "folderPath": "知识库/编程",
        "permalink": "/knowledge-base/programming/type-gymnastics/",
        "title": "类型体操"
      },
      "菱形依赖": {
        "name": "菱形依赖",
        "type": "file",
        "fileId": "知识库/编程/菱形依赖",
        "folderPath": "知识库/编程",
        "permalink": "/code/diamond-dependency/",
        "title": "菱形依赖"
      },
      "软件架构": {
        "name": "软件架构",
        "type": "file",
        "fileId": "知识库/编程/软件架构",
        "folderPath": "知识库/编程",
        "permalink": "/code/software-architecture/",
        "title": "软件架构"
      },
      "写个h5编辑器有多难0": {
        "name": "写个h5编辑器有多难0",
        "type": "file",
        "fileId": "archives/2018/h5/写个h5编辑器有多难0",
        "folderPath": "archives/2018/h5",
        "permalink": "/2018/05/01/2018/h5/h5-0/",
        "title": "[h5] 写个h5编辑器有多难？[0]"
      },
      "写个h5编辑器有多难1": {
        "name": "写个h5编辑器有多难1",
        "type": "file",
        "fileId": "archives/2018/h5/写个h5编辑器有多难1",
        "folderPath": "archives/2018/h5",
        "permalink": "/2018/05/01/2018/h5/h5-1/",
        "title": "[h5] 写个h5编辑器有多难？[1]"
      },
      "写个h5编辑器有多难2": {
        "name": "写个h5编辑器有多难2",
        "type": "file",
        "fileId": "archives/2018/h5/写个h5编辑器有多难2",
        "folderPath": "archives/2018/h5",
        "permalink": "/2018/05/01/2018/h5/h5-2/",
        "title": "[h5] 写个h5编辑器有多难？[2]"
      },
      "add-two-numbers": {
        "name": "add-two-numbers",
        "type": "file",
        "fileId": "archives/2018/leetcode/add-two-numbers",
        "folderPath": "archives/2018/leetcode",
        "permalink": "/2018/06/24/2018/leetcode/2/",
        "title": "leetcode：Add Two Numbers(#2)"
      },
      "写个h5编辑器有多难3": {
        "name": "写个h5编辑器有多难3",
        "type": "file",
        "fileId": "archives/2018/h5/写个h5编辑器有多难3",
        "folderPath": "archives/2018/h5",
        "permalink": "/2018/05/01/2018/h5/h5-3/",
        "title": "[h5] 写个h5编辑器有多难？[3]"
      },
      "two-sum": {
        "name": "two-sum",
        "type": "file",
        "fileId": "archives/2018/leetcode/two-sum",
        "folderPath": "archives/2018/leetcode",
        "permalink": "/2018/06/24/2018/leetcode/1/",
        "title": "leetcode： two sum(#1)"
      },
      "godot-背包系统": {
        "name": "godot-背包系统",
        "type": "file",
        "fileId": "知识库/游戏开发/godot-背包系统",
        "folderPath": "知识库/游戏开发",
        "permalink": "/godot/bag-system/moc/",
        "title": "godot4 中实现一个简单的背包系统"
      },
      "如何设计一个背包的控制逻辑": {
        "name": "如何设计一个背包的控制逻辑",
        "type": "file",
        "fileId": "知识库/游戏开发/godot-背包系统/如何设计一个背包的控制逻辑",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "permalink": "/godot/bag-system/controller/",
        "title": "如何设计一个背包的控制逻辑"
      },
      "如何设计一个背包系统的数据结构": {
        "name": "如何设计一个背包系统的数据结构",
        "type": "file",
        "fileId": "知识库/游戏开发/godot-背包系统/如何设计一个背包系统的数据结构",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "permalink": "/godot/bag-system/database/",
        "title": "如何设计一个背包系统的数据结构"
      },
      "实现背包gui": {
        "name": "实现背包gui",
        "type": "file",
        "fileId": "知识库/游戏开发/godot-背包系统/实现背包gui",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "permalink": "/godot/bag-system/gui/",
        "title": "实现背包GUI"
      },
      "实现背包拖拽": {
        "name": "实现背包拖拽",
        "type": "file",
        "fileId": "知识库/游戏开发/godot-背包系统/实现背包拖拽",
        "folderPath": "知识库/游戏开发/godot-背包系统",
        "permalink": "/godot/bag-system/drag/",
        "title": "实现背包拖拽"
      },
      "游戏开发中的状态机与状态模式": {
        "name": "游戏开发中的状态机与状态模式",
        "type": "file",
        "fileId": "知识库/游戏开发/游戏开发中的状态机与状态模式",
        "folderPath": "知识库/游戏开发",
        "permalink": "/game-dev/state/",
        "title": "游戏开发中的状态机与状态模式"
      },
      "博弈论": {
        "name": "博弈论",
        "type": "file",
        "fileId": "知识库/其他/博弈论",
        "folderPath": "知识库/其他",
        "permalink": "/game-theory/",
        "title": "博弈论"
      },
      "严格劣势策略": {
        "name": "严格劣势策略",
        "type": "file",
        "fileId": "知识库/其他/博弈论/严格劣势策略",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/strictly-dominated-strategy/",
        "title": "严格劣势策略"
      },
      "优势策略": {
        "name": "优势策略",
        "type": "file",
        "fileId": "知识库/其他/博弈论/优势策略",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/dominant-strategy/",
        "title": "优势策略未命名"
      },
      "协调问题": {
        "name": "协调问题",
        "type": "file",
        "fileId": "知识库/其他/博弈论/协调问题",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/coordination-problem/",
        "title": "协调问题"
      },
      "博弈论-学会换位思考-lession2": {
        "name": "博弈论-学会换位思考-lession2",
        "type": "file",
        "fileId": "知识库/其他/博弈论/博弈论-学会换位思考-lession2",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/game-theory-perspective-taking-lesson2/",
        "title": "博弈论-导论-lession1"
      },
      "博弈论-导论-lession1": {
        "name": "博弈论-导论-lession1",
        "type": "file",
        "fileId": "知识库/其他/博弈论/博弈论-导论-lession1",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/game-theory-introduction-lesson1/",
        "title": "博弈论-导论-lession1"
      },
      "囚徒困境": {
        "name": "囚徒困境",
        "type": "file",
        "fileId": "知识库/其他/博弈论/囚徒困境",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/prisoners-dilemma/",
        "title": "囚徒困境"
      },
      "猜三分之二平均数游戏": {
        "name": "猜三分之二平均数游戏",
        "type": "file",
        "fileId": "知识库/其他/博弈论/猜三分之二平均数游戏",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/guess-two-thirds-average-game/",
        "title": "猜三分之二平均数游戏（Guess 2/3 of the Average Game）"
      },
      "纳什均衡": {
        "name": "纳什均衡",
        "type": "file",
        "fileId": "知识库/其他/博弈论/纳什均衡",
        "folderPath": "知识库/其他/博弈论",
        "permalink": "/knowledge-base/other/game-theory/nash-equilibrium/",
        "title": "纳什均衡"
      },
      "js-中的新集合操作-api": {
        "name": "js-中的新集合操作-api",
        "type": "file",
        "fileId": "知识库/编程/前端/js-中的新集合操作-api",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/js-new-set-operations-api/",
        "title": "js 中的新集合操作 API"
      },
      "abortcontroller": {
        "name": "abortcontroller",
        "type": "file",
        "fileId": "知识库/编程/前端/abortcontroller",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/abort-controller/",
        "title": "试试用 AbortController 来替代自己实现的取消 API"
      },
      "react-dnd-backend-html5-与-默认-dnd-事件冲突": {
        "name": "react-dnd-backend-html5-与-默认-dnd-事件冲突",
        "type": "file",
        "fileId": "知识库/编程/前端/react-dnd-backend-html5-与-默认-dnd-事件冲突",
        "folderPath": "知识库/编程/前端",
        "permalink": "/2024/react-dnd-backend-html5-conflict-with-native-dnd/",
        "title": "react dnd backend html5 与 默认 dnd 事件冲突"
      },
      "set-like": {
        "name": "set-like",
        "type": "file",
        "fileId": "知识库/编程/前端/set-like",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/js/set-like/",
        "title": "set-like"
      },
      "vue函数签名": {
        "name": "vue函数签名",
        "type": "file",
        "fileId": "知识库/编程/前端/vue函数签名",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/function-signature/",
        "title": "vue 函数签名（在 vue2中实现 vue3 函数签名）"
      },
      "优化-llm-流式输出-markdown-渲染效果": {
        "name": "优化-llm-流式输出-markdown-渲染效果",
        "type": "file",
        "fileId": "知识库/编程/前端/优化-llm-流式输出-markdown-渲染效果",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/optimize-llm-streaming-markdown-rendering/",
        "title": "优化 LLM 流式输出 markdown 渲染效果"
      },
      "再谈谈-vue2-和-vue3": {
        "name": "再谈谈-vue2-和-vue3",
        "type": "file",
        "fileId": "知识库/编程/前端/再谈谈-vue2-和-vue3",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/web-frontend/vue2-vue3/",
        "title": "再谈谈 vue2 和 vue3"
      },
      "前端自动化端到端测试选型概述": {
        "name": "前端自动化端到端测试选型概述",
        "type": "file",
        "fileId": "知识库/编程/前端/前端自动化端到端测试选型概述",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/web-frontend/e2e-test/",
        "title": "前端自动化端到端测试选型概述"
      },
      "前端规范": {
        "name": "前端规范",
        "type": "file",
        "fileId": "知识库/编程/前端/前端规范",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/rules/",
        "title": "谈谈现在我在B端的落地的前端规范"
      },
      "微前端": {
        "name": "微前端",
        "type": "file",
        "fileId": "知识库/编程/前端/微前端",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/micro-frontend/",
        "title": "微前端"
      },
      "在setup中挂载vue实例后getcurrentinstance无法获取instance": {
        "name": "在setup中挂载vue实例后getcurrentinstance无法获取instance",
        "type": "file",
        "fileId": "知识库/编程/前端/在setup中挂载vue实例后getcurrentinstance无法获取instance",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/vue/getCurrentInstance-get-null-after-mount-vue-app/",
        "title": "在 setup 中挂载 vue 实例后 getCurrentInstance 无法获取 instance"
      },
      "有望统合-esm-和-cjs-的-node23": {
        "name": "有望统合-esm-和-cjs-的-node23",
        "type": "file",
        "fileId": "知识库/编程/前端/有望统合-esm-和-cjs-的-node23",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/cjs-require-esm/",
        "title": "有望统合 ESM 和 CJS 的 node23"
      },
      "来做个倒计时按钮": {
        "name": "来做个倒计时按钮",
        "type": "file",
        "fileId": "知识库/编程/前端/来做个倒计时按钮",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/countdown-button/",
        "title": "来做个倒计时按钮"
      },
      "来试试用-react-的写法写-vue": {
        "name": "来试试用-react-的写法写-vue",
        "type": "file",
        "fileId": "知识库/编程/前端/来试试用-react-的写法写-vue",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/try-use-vueireact/",
        "title": "来试试用 react 的写法写 vue"
      },
      "流式下载文件并设置到input上": {
        "name": "流式下载文件并设置到input上",
        "type": "file",
        "fileId": "知识库/编程/前端/流式下载文件并设置到input上",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/web-frontend/stream-download-to-input/",
        "title": "前端流式下载文件并设置到 input 上"
      },
      "范式角度思考的前端状态管理": {
        "name": "范式角度思考的前端状态管理",
        "type": "file",
        "fileId": "知识库/编程/前端/范式角度思考的前端状态管理",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/fe-store/",
        "title": "范式角度思考的前端状态管理"
      },
      "虚拟dom": {
        "name": "虚拟dom",
        "type": "file",
        "fileId": "知识库/编程/前端/虚拟dom",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/front-end/vdom/",
        "title": "虚拟 dom"
      },
      "谈谈已经去世的websql和秽土转生的sqlite-wasm": {
        "name": "谈谈已经去世的websql和秽土转生的sqlite-wasm",
        "type": "file",
        "fileId": "知识库/编程/前端/谈谈已经去世的websql和秽土转生的sqlite-wasm",
        "folderPath": "知识库/编程/前端",
        "permalink": "/code/web-frontend/discuss-websql-and-sqlite-wasm/",
        "title": "谈谈已经去世的 websql 和秽土转生的 sqlite-wasm"
      },
      "计算机图形学": {
        "name": "计算机图形学",
        "type": "file",
        "fileId": "知识库/编程/图形学/计算机图形学",
        "folderPath": "知识库/编程/图形学",
        "permalink": "/knowledge-base/programming/graphics/computer-graphics/",
        "title": "计算机图形学"
      },
      "openssh-高危漏洞-cve-2024-6387": {
        "name": "openssh-高危漏洞-cve-2024-6387",
        "type": "file",
        "fileId": "知识库/编程/安全/openssh-高危漏洞-cve-2024-6387",
        "folderPath": "知识库/编程/安全",
        "permalink": "/code/cve-2024-6387/",
        "title": "OpenSSH 高危漏洞 CVE-2024-6387"
      },
      "rsc核弹级漏洞react-cve-2025-66478": {
        "name": "rsc核弹级漏洞react-cve-2025-66478",
        "type": "file",
        "fileId": "知识库/编程/安全/rsc核弹级漏洞react-cve-2025-66478",
        "folderPath": "知识库/编程/安全",
        "permalink": "/code/cve-2025-66478/",
        "title": "RSC核弹级漏洞React CVE-2025-66478"
      },
      "vite-中等威胁漏洞-cve-2025-30208": {
        "name": "vite-中等威胁漏洞-cve-2025-30208",
        "type": "file",
        "fileId": "知识库/编程/安全/vite-中等威胁漏洞-cve-2025-30208",
        "folderPath": "知识库/编程/安全",
        "permalink": "/code/cve-2025-30208/",
        "title": "Vite 中等威胁漏洞 CVE-2025-30208"
      },
      "端到端测试": {
        "name": "端到端测试",
        "type": "file",
        "fileId": "知识库/编程/测试/端到端测试",
        "folderPath": "知识库/编程/测试",
        "permalink": "/code/test/e2e/",
        "title": "端到端测试"
      },
      "单元测试": {
        "name": "单元测试",
        "type": "file",
        "fileId": "知识库/编程/测试/单元测试",
        "folderPath": "知识库/编程/测试",
        "permalink": "/code/test/unit/",
        "title": "单元测试"
      },
      "自动化测试": {
        "name": "自动化测试",
        "type": "file",
        "fileId": "知识库/编程/测试/自动化测试",
        "folderPath": "知识库/编程/测试",
        "permalink": "/code/test/auto/",
        "title": "自动化测试"
      },
      "广度优先算法": {
        "name": "广度优先算法",
        "type": "file",
        "fileId": "知识库/编程/算法/广度优先算法",
        "folderPath": "知识库/编程/算法",
        "permalink": "/knowledge-base/programming/algorithms/breadth-first-algorithm/",
        "title": "广度优先算法"
      },
      "排序算法": {
        "name": "排序算法",
        "type": "file",
        "fileId": "知识库/编程/算法/排序算法",
        "folderPath": "知识库/编程/算法",
        "permalink": "/knowledge-base/programming/algorithms/sorting-algorithms/",
        "title": "排序算法"
      },
      "搜索算法": {
        "name": "搜索算法",
        "type": "file",
        "fileId": "知识库/编程/算法/搜索算法",
        "folderPath": "知识库/编程/算法",
        "permalink": "/knowledge-base/programming/algorithms/search-algorithms/",
        "title": "搜索算法"
      },
      "时间复杂度": {
        "name": "时间复杂度",
        "type": "file",
        "fileId": "知识库/编程/算法/时间复杂度",
        "folderPath": "知识库/编程/算法",
        "permalink": "/knowledge-base/programming/algorithms/time-complexity/",
        "title": "时间复杂度"
      },
      "深度优先算法": {
        "name": "深度优先算法",
        "type": "file",
        "fileId": "知识库/编程/算法/深度优先算法",
        "folderPath": "知识库/编程/算法",
        "permalink": "/knowledge-base/programming/algorithms/depth-first-algorithm/",
        "title": "深度优先算法"
      },
      "波函数坍缩算法": {
        "name": "波函数坍缩算法",
        "type": "file",
        "fileId": "知识库/编程/算法/波函数坍缩算法",
        "folderPath": "知识库/编程/算法",
        "permalink": "/knowledge-base/programming/algorithms/wave-function-collapse-algorithm/",
        "title": "波函数坍缩算法"
      },
      "算法": {
        "name": "算法",
        "type": "file",
        "fileId": "知识库/编程/算法/算法",
        "folderPath": "知识库/编程/算法",
        "permalink": "/knowledge-base/programming/algorithms/algorithms/",
        "title": "算法"
      },
      "aot": {
        "name": "aot",
        "type": "file",
        "fileId": "知识库/编程/编译和构建/aot",
        "folderPath": "知识库/编程/编译和构建",
        "permalink": "/2022/aot/",
        "title": "AOT"
      },
      "jit": {
        "name": "jit",
        "type": "file",
        "fileId": "知识库/编程/编译和构建/jit",
        "folderPath": "知识库/编程/编译和构建",
        "permalink": "/2022/jit/",
        "title": "JIT"
      },
      "利用-gitlab-downstream-trigger-简化-pipeline-配置": {
        "name": "利用-gitlab-downstream-trigger-简化-pipeline-配置",
        "type": "file",
        "fileId": "知识库/编程/编译和构建/利用-gitlab-downstream-trigger-简化-pipeline-配置",
        "folderPath": "知识库/编程/编译和构建",
        "permalink": "/ci-cd/gitlab-downstream-trigger-pipeline/",
        "title": "利用 gitlab downstream trigger 简化 pipeline 配置"
      },
      "享元模式": {
        "name": "享元模式",
        "type": "file",
        "fileId": "知识库/编程/设计模式/享元模式",
        "folderPath": "知识库/编程/设计模式",
        "permalink": "/knowledge-base/programming/design-patterns/flyweight-pattern/",
        "title": "享元模式"
      },
      "设计模式": {
        "name": "设计模式",
        "type": "file",
        "fileId": "知识库/编程/设计模式/设计模式",
        "folderPath": "知识库/编程/设计模式",
        "permalink": "/knowledge-base/programming/design-patterns/design-patterns/",
        "title": "设计模式"
      },
      "贫血模型": {
        "name": "贫血模型",
        "type": "file",
        "fileId": "知识库/编程/设计模式/贫血模型",
        "folderPath": "知识库/编程/设计模式",
        "permalink": "/2023/anemic-domain-model/",
        "title": "贫血模型"
      },
      "monorepo-项目中如何部署-node-服务": {
        "name": "monorepo-项目中如何部署-node-服务",
        "type": "file",
        "fileId": "知识库/编程/编译和构建/monorepo-项目中如何部署-node-服务",
        "folderPath": "知识库/编程/编译和构建",
        "permalink": "/ci-cd/mono-repo-for-node-server/",
        "title": "monorepo 项目中如何部署 node 服务"
      },
      "game101s": {
        "name": "game101s",
        "type": "file",
        "fileId": "知识库/编程/图形学/game101s",
        "folderPath": "知识库/编程/图形学",
        "permalink": "/graphics/game101s/",
        "title": "Game101s"
      },
      "线性代数": {
        "name": "线性代数",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数",
        "folderPath": "知识库/编程/图形学",
        "permalink": "/linear-algebra/base/",
        "title": "基础线性代数"
      },
      "判断向量的左右内外": {
        "name": "判断向量的左右内外",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/判断向量的左右内外",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-absolute-position/",
        "title": "判断向量的左右、内外"
      },
      "判断向量的相对方向": {
        "name": "判断向量的相对方向",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/判断向量的相对方向",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-relative-position/",
        "title": "判断向量的相对方向"
      },
      "单位向量": {
        "name": "单位向量",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/单位向量",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/identity-vector/",
        "title": "单位向量"
      },
      "单位矩阵": {
        "name": "单位矩阵",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/单位矩阵",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/identity-matrix/",
        "title": "单位矩阵"
      },
      "向量": {
        "name": "向量",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/向量",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector/",
        "title": "向量（vector）"
      },
      "向量投影": {
        "name": "向量投影",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/向量投影",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-projection/",
        "title": "向量投影"
      },
      "向量的乘法": {
        "name": "向量的乘法",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/向量的乘法",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-dot/",
        "title": "向量的乘法"
      },
      "向量的归一化": {
        "name": "向量的归一化",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/向量的归一化",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-normalization/",
        "title": "向量的归一化 vector normalization"
      },
      "模": {
        "name": "模",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/模",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-module/",
        "title": "向量长度（模）module"
      },
      "向量的求和": {
        "name": "向量的求和",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/向量的求和",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-plus/",
        "title": "向量求和"
      },
      "矩阵": {
        "name": "矩阵",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/矩阵",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/matrix/",
        "title": "矩阵"
      },
      "矩阵乘法": {
        "name": "矩阵乘法",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/矩阵乘法",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/matrix-dot/",
        "title": "矩阵乘法"
      },
      "矩阵和向量的乘法": {
        "name": "矩阵和向量的乘法",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/矩阵和向量的乘法",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/matrix-and-vector-dot/",
        "title": "矩阵和向量的乘法"
      },
      "笛卡尔坐标系下的向量表示": {
        "name": "笛卡尔坐标系下的向量表示",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/笛卡尔坐标系下的向量表示",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/vector-under-cartesian-coordinate/",
        "title": "笛卡尔坐标系下的向量表示"
      },
      "转置矩阵": {
        "name": "转置矩阵",
        "type": "file",
        "fileId": "知识库/编程/图形学/线性代数/转置矩阵",
        "folderPath": "知识库/编程/图形学/线性代数",
        "permalink": "/linear-algebra/matrix-transpose/",
        "title": "转置矩阵"
      }
    }
  }
}