{"nodes":[{"id":"topic:build","kind":"topic","title":"构建系统","description":"围绕前端工程、内容架构、静态站和自动化工作流的长期主题。","href":"/topics#build","radius":28,"featured":true,"topicIds":["build"],"x":560,"y":262},{"id":"topic:product","kind":"topic","title":"产品观察","description":"记录体验判断、信息架构、展示系统和产品策略的思考。","href":"/topics#product","radius":28,"featured":true,"topicIds":["product"],"x":699,"y":439},{"id":"topic:lab","kind":"topic","title":"实验原型","description":"收纳 AI 原型、交互 Demo、小工具和还在验证中的想法。","href":"/topics#lab","radius":28,"featured":true,"topicIds":["lab"],"x":421,"y":439},{"id":"blog:starting-a-personal-site","kind":"blog","title":"为什么先搭一个个人门户","description":"把博客、作品和实验统一放进一个轻量展示框架。","href":"/blog/starting-a-personal-site","radius":21,"featured":true,"topicIds":["build","product"],"x":560,"y":85},{"id":"blog:notes-on-building","kind":"blog","title":"搭建首版时保留哪些能力","description":"一个展示型网站不需要复杂后台，但需要清晰的信息结构。","href":"/blog/notes-on-building","radius":17,"featured":false,"topicIds":["build","product"],"x":734,"y":107},{"id":"work:blog-portal","kind":"work","title":"个人门户框架","description":"基于深色科技门户原型改造的个人展示网站，承载博客、作品和实验。","href":"/works/blog-portal","radius":21,"featured":true,"topicIds":["build","product"],"x":882,"y":171},{"id":"work:knowledge-notes","kind":"work","title":"知识笔记系统","description":"用于整理长期学习、技术选型和产品判断的公开笔记集合。","href":"/works/knowledge-notes","radius":21,"featured":true,"topicIds":["build","product"],"x":980,"y":267},{"id":"work:lab-index","kind":"work","title":"实验室索引","description":"展示小工具、交互原型、AI 实验和还没完全产品化的想法。","href":"/works/lab-index","radius":17,"featured":false,"topicIds":["lab"],"x":1015,"y":380},{"id":"world:temporary-observatory","kind":"world","title":"临时观测站","description":"建立在内容边界上的入口设施，也是这座个人内容宇宙的叙事起点。","href":"/world/temporary-observatory","radius":21,"featured":true,"topicIds":["build","lab"],"x":980,"y":493},{"id":"world:archive-protocol","kind":"world","title":"档案整理协议","description":"用于判断一段内容应被归入文字、技术、作品或世界档案的基础规则。","href":"/world/archive-protocol","radius":21,"featured":true,"topicIds":["build","product"],"x":882,"y":589},{"id":"world:first-signal","kind":"world","title":"第一次公开信号","description":"观测站开始对外开放，并首次将分散内容接入统一索引的事件。","href":"/world/first-signal","radius":17,"featured":false,"topicIds":["build"],"x":734,"y":653},{"id":"note:first-open-signal","kind":"note","title":"第一条公开动态","description":"短动态入口接通后，留下的第一条轻量状态记录。","href":"/notes/first-open-signal","radius":21,"featured":true,"topicIds":["build"],"x":560,"y":675},{"id":"note:static-content-link","kind":"note","title":"静态内容也能保持活性","description":"分享 Astro，并记录为什么静态内容站仍然可以拥有持续更新的发现体验。","href":"/notes/static-content-link","radius":17,"featured":false,"topicIds":["build"],"x":386,"y":653},{"id":"note:unfinished-ideas-need-entrances","kind":"note","title":"未完成的想法也需要入口","description":"当一个想法尚不足以成为文章时，先给它一个可以被重新找到的位置。","href":"/notes/unfinished-ideas-need-entrances","radius":17,"featured":false,"topicIds":["product"],"x":238,"y":589},{"id":"link:astro-documentation","kind":"link","title":"Astro Documentation","description":"Astro 的官方文档，覆盖内容集合、静态构建、路由、组件与部署。","href":"/links#astro-documentation","radius":21,"featured":true,"topicIds":["build"],"x":140,"y":493},{"id":"link:mdn-web-docs","kind":"link","title":"MDN Web Docs","description":"由社区维护的 Web 平台文档，覆盖 HTML、CSS、JavaScript 与浏览器 API。","href":"/links#mdn-web-docs","radius":21,"featured":true,"topicIds":["build"],"x":105,"y":380},{"id":"link:a-list-apart","kind":"link","title":"A List Apart","description":"长期讨论 Web 设计、内容策略、标准与实践的独立出版物。","href":"/links#a-list-apart","radius":17,"featured":false,"topicIds":["product"],"x":140,"y":267},{"id":"link:creative-independent","kind":"link","title":"The Creative Independent","description":"围绕创作过程、工作方式与长期实践展开的访谈和指南。","href":"/links#creative-independent","radius":17,"featured":false,"topicIds":["product"],"x":238,"y":171},{"id":"link:github-explore","kind":"link","title":"GitHub Explore","description":"按主题发现开源项目、趋势仓库与可以继续追踪的实现方向。","href":"/links#github-explore","radius":17,"featured":false,"topicIds":["build","lab"],"x":386,"y":107}],"edges":[{"id":"edge-1","source":"topic:build","target":"blog:starting-a-personal-site","kind":"topic"},{"id":"edge-2","source":"topic:product","target":"blog:starting-a-personal-site","kind":"topic"},{"id":"edge-3","source":"topic:build","target":"blog:notes-on-building","kind":"topic"},{"id":"edge-4","source":"topic:product","target":"blog:notes-on-building","kind":"topic"},{"id":"edge-5","source":"topic:build","target":"work:blog-portal","kind":"topic"},{"id":"edge-6","source":"topic:product","target":"work:blog-portal","kind":"topic"},{"id":"edge-7","source":"topic:build","target":"work:knowledge-notes","kind":"topic"},{"id":"edge-8","source":"topic:product","target":"work:knowledge-notes","kind":"topic"},{"id":"edge-9","source":"topic:lab","target":"work:lab-index","kind":"topic"},{"id":"edge-10","source":"topic:build","target":"world:temporary-observatory","kind":"topic"},{"id":"edge-11","source":"topic:lab","target":"world:temporary-observatory","kind":"topic"},{"id":"edge-12","source":"topic:build","target":"world:archive-protocol","kind":"topic"},{"id":"edge-13","source":"topic:product","target":"world:archive-protocol","kind":"topic"},{"id":"edge-14","source":"topic:build","target":"world:first-signal","kind":"topic"},{"id":"edge-15","source":"topic:build","target":"note:first-open-signal","kind":"topic"},{"id":"edge-16","source":"topic:build","target":"note:static-content-link","kind":"topic"},{"id":"edge-17","source":"topic:product","target":"note:unfinished-ideas-need-entrances","kind":"topic"},{"id":"edge-18","source":"topic:build","target":"link:astro-documentation","kind":"topic"},{"id":"edge-19","source":"topic:build","target":"link:mdn-web-docs","kind":"topic"},{"id":"edge-20","source":"topic:product","target":"link:a-list-apart","kind":"topic"},{"id":"edge-21","source":"topic:product","target":"link:creative-independent","kind":"topic"},{"id":"edge-22","source":"topic:build","target":"link:github-explore","kind":"topic"},{"id":"edge-23","source":"topic:lab","target":"link:github-explore","kind":"topic"},{"id":"edge-24","source":"blog:starting-a-personal-site","target":"work:blog-portal","kind":"related"},{"id":"edge-25","source":"blog:starting-a-personal-site","target":"work:knowledge-notes","kind":"related"},{"id":"edge-26","source":"blog:notes-on-building","target":"work:blog-portal","kind":"related"},{"id":"edge-27","source":"work:blog-portal","target":"work:knowledge-notes","kind":"related"},{"id":"edge-28","source":"work:blog-portal","target":"work:lab-index","kind":"related"},{"id":"edge-29","source":"world:archive-protocol","target":"world:temporary-observatory","kind":"related"},{"id":"edge-30","source":"world:first-signal","target":"world:temporary-observatory","kind":"related"}],"counts":{"topic":3,"blog":2,"work":3,"world":3,"note":3,"link":5}}