[{"data":1,"prerenderedAt":1156},["ShallowReactive",2],{"article-2026-4-25":3,"surround-2026-4-25":53},{"id":4,"title":5,"author":6,"body":7,"category":42,"cover":39,"date":43,"description":44,"extension":45,"meta":46,"navigation":47,"path":48,"published":47,"seo":49,"stem":50,"tags":51,"updated":44,"__hash__":52},"blog\u002Fblog\u002F2026-4-25.md","怎么说，怎么做","mulin",{"type":8,"value":9,"toc":38},"minimark",[10,15,19,22,25,29,32,35],[11,12,14],"h1",{"id":13},"怎么说怎么做山海经人民公社外交理论的阐述","怎么说，怎么做（山海经人民公社外交理论的阐述）",[16,17,18],"p",{},"随着党的开拓工作的进行,我们就必须不可避免的面对一系列外交问题,就此,为了解答我们一些同志的疑惑,也是为了日后能系统性的开展官方外交工作,有必要就我们的外交理论进行阐述了。",[16,20,21],{},"党的新时代奋斗征程的开始,同时代表党必须结合实事对现有外理论进行整合。那么,在党开展外交工作前,党需要什么样的条件呢?",[16,23,24],{},"党的外交前提只有两个;这里先说其一,便是党需要强大的综合实力。国防是级的强硬后盾,如果我们没有强大的综合实力下开展外交,那么我们必然丧失主权,失去公开的发言权,这是失败的外交。举一个自身的例子,党在2024年815事变以前对待外交的态度是一在忍让,失去了前期优势,使党的基本形象大为下降,究其原因,便是党在发展层面上的不重视或发展缓慢进而只可退而求其次。同时,无数的历史已然证明,国防才是对外发言的有效论据，“笔杆子外交,”讨嫌,终其是不久远的,唯有抓起枪杆子说话,才是外交的正确说话方式。那末,再说其二,便是党的外交必须以促进自身发展为前提,任何形式的外交,在它的开展目的就是要促进自身发展,以外交手段保障工会正常发展,这是我们开展外交工作的第二个前提。",[11,26,28],{"id":27},"那么我们在当前的开拓工作中又应当如何展开外交工作呢","那么,我们在当前的开拓工作中,又应当如何展开外交工作呢?",[16,30,31],{},"目前阶段,尤其是党的基础工业还没正式开始的情况下,党的外交方向应当以和平手段为主,尽量以和平手段解决外交冲突。故而我们提出对外交往的四项基本原则:坚持长期共存,坚持不涉内政,坚持平等互利,坚持积极对话。长期共存,是指党在对外交往中应始终明白,服务器的建设从不只是一个工会努力的结果,它是全服玩家,政治社团共同努力的结果,坚持长期共存,就是要让服务器的建设者们相互合作建设,促进服务器和平发展。不涉内政,是和平外交下的必然产物,党无意干涉他国方面内政,不颠覆政权,不支持内战的任何一方势力,不激化他国工会内部矛盾,党不干涉他国内政,同时也坚决不允许他国工会干涉内政,内政问题,是党的外交中的绝对红线,关乎我党最根本,最生死攸关的利益问题,故而,任何外交工作者应当树立保守党的内政秘密的意识。平等互利,是党的外交合作的基本目的,互利互惠,相互平等,对我党的推对多边关系交往有重要意义。积极对话,是党一切外交工作的基本手段,通过喊话,对话解决部分事件,积极活跃于政治舞台,这些都是险非武为手段下解决外交争端的方式,对提升我党的政治地位,具有极大的作用。",[16,33,34],{},"周总理在我国的外交部成立大会上说到：“旧中国的外交史，是屈辱的外交史，我们不学他们，我们另起炉灶。”同样的，我们党的外交也必须实事求是，独立自主，敢爱敢恨，这便是我们党的外交工作人员必须学会的东西",[16,36,37],{},"2025.4.25",{"title":39,"searchDepth":40,"depth":40,"links":41},"",2,[],"随笔","2026-04-25",null,"md",{},true,"\u002Fblog\u002F2026-4-25",{"title":5,"description":44},"blog\u002F2026-4-25",[42],"RlBs6IT1xe5fLamjlEZ2RdQ0kGdSHJsaF_p__p8B_6M",[54,110,134,377,445,747,834],{"id":55,"title":56,"author":6,"body":57,"category":101,"cover":39,"date":102,"description":103,"extension":45,"meta":104,"navigation":47,"path":105,"published":47,"seo":106,"stem":107,"tags":108,"updated":44,"__hash__":109},"blog\u002Fblog\u002F2025.4.23.md","放弃幻想，继续斗争",{"type":8,"value":58,"toc":99},[59,63,69,72,75,78,81,84,87,90,93,96],[11,60,62],{"id":61},"放弃幻想继续斗争关于山海经新时代奋斗征程的论述","放弃幻想，继续斗争（关于山海经新时代奋斗征程的论述）",[16,64,65],{},[66,67,68],"strong",{},"作者：沐霖",[16,70,71],{},"今年的5月1日，是个值得庆祝的日子，它将向后人昭示一个新时代的开始。什么新时代？是党正式走向新的振兴的伟大新时代",[16,73,74],{},"首先指出，党与云海中央接轨后是党的新时代奋斗征程的先决条件，在中央的领导下，我们有能力，有条件实现党的伟大复兴。推动党的伟大复兴，第一个要求就是跟随中央的领导。其次，回顾党的奋斗征程，无非是在历史中选择总结经验，得到实事求是的经验，推进党的伟大复兴，就是在历史当中总结经验并加以创新，这是党的伟大复兴的第二先决条件",[16,76,77],{},"在明确先决条件后，便是党为什么振兴，怎么去振兴？",[16,79,80],{},"党的伟大复兴是党的历史必然趋势。发展至50人不是繁荣顶峰，它是党的新时代奋斗的起点，它证明了党的人数短期快速增长是存在的，它是一片实验田，有了经验，有了基础。党是持久发展的，拥抱活力的法宝，而低迷不去自求突破的，这是片面的，短期的，这是把短期的低迷当做长期看待，这是应当严厉批判的右倾机会主义，固步自封，不求突破，这就是我们党的某些干部的工作态度，第一，他们没有以身作则，第二他们的失败主义会对党的基层成员，干部产生及其不良的影响，是必须严肃处理的",[16,82,83],{},"那末，在新时代的发展下，党又如何去振兴又是我们的问题",[16,85,86],{},"实现党的伟大复兴，无非三个阶段：第一阶段,即从第二届一中全会开始,全面铺开开拓工作,基本完成工业化,以平衡合作为方针构建政治同盟为外交方针,达到掌握左右政治局的目的,完成招收6名骨干,14名普通成员为的开拓指标,直至三届一中全会召开。第二阶段,即从三届一中全会开始,全面军政体系改革,将目前(行政架构划分第4版)的的政治架构全面落实,推动文娱活动的积极开展。至多招收20人,直至我党的第二届中央政治协商会议的召开。第三阶段,即从二次政协会议开始,全面发展开拓工作,直到与中央达到同一发展水平。目前,党处于第一阶段的起步阶段,既然已走向复兴,那么何必畏首畏尾?故而,第一阶段是需要创新与实干的,我们党将要长期处在这个阶段,学习这个阶段,这是党发展的必要时期,也是我们获取经验,补充干部的黄金时期。那末,这是不是代表后两个阶段是没用的呢?不是的。实现振兴,在除了人员的要求之外,还需要健全的政治体制。一个工人,你让他一天造一根针,那是低效的,但你让一群工人,分好职责,分工协作,那可以造出成百上千根针。实现政体改革,本质上是实现解放党的工作效率的解放。还有一些同志便不理解,利用架构这不是限制娱活动吗?不是的,在本质上,两者同样是不冲突的,两者都是使工会具有活力的手段。在这一方面,支部中央认为,积极开展活动,促进体制化的改革。故而,在党的二届一中全会后,党允许各干员,干部可以在不严重违反纪律的情况下组织团建活动,中央予以支持和鼓励,必要时提供物质的帮助。综上所述,党在二阶段的三切改革的是常发展的重要时期，这不仅是党完善行政制度的时期，同时也起到同化一阶段成，的作用。第三阶段,是党实现振兴的收官时期,它将进一步宣告,党的发展两年奋斗已取得巨大成果,党已然进入新的发展时期。",[16,88,89],{},"那末,明确了党的奋斗方向,如何去实现呢?来来去去,无外乎这几个字:创新、务实,勤奋,理想。创新是党进程的根本动力,务实,勤奋,是党进程的前进方式,理想,是党进程的支撑。在组织上，干部，干员要融成一体，要形成干部学干部，干员学干部，干员学干员，干部学干员的大学",[16,91,92],{},"工会是我们的,但也是你们的,并且归根结底是属于你们年轻一代的,希望与未来寄托在你们身上,工会的伟大振兴并非一朝一夕便可以完成的,这就需要你们这一代担起责任,同时也需要我们的开拓。故而,工会的伟大振兴需要全党同志团结奋进,力争上游。",[16,94,95],{},"所有奋战在一线的干员,干部,支部中央号召你们:团结一致,继续前进,放弃幻想,继续斗争。理敢于开拓,敢于创新,切记空谈误事,切记莫要固步自封,实干兴邦,创新前进,为全面推进山海经社会主义联盟新时代复兴征程而努力奋斗!",[16,97,98],{},"2025.4.23",{"title":39,"searchDepth":40,"depth":40,"links":100},[],"生活","2025-04-23","关于山海经新时代奋斗征程的论述",{},"\u002Fblog\u002F2025.4.23",{"title":56,"description":103},"blog\u002F2025.4.23",[42,101],"G9ZCsLecoUuhAIySidp9AI47wM1Q5PYg7jAs1yPp9iE",{"id":4,"title":5,"author":6,"body":111,"category":42,"cover":39,"date":43,"description":44,"extension":45,"meta":131,"navigation":47,"path":48,"published":47,"seo":132,"stem":50,"tags":133,"updated":44,"__hash__":52},{"type":8,"value":112,"toc":129},[113,115,117,119,121,123,125,127],[11,114,14],{"id":13},[16,116,18],{},[16,118,21],{},[16,120,24],{},[11,122,28],{"id":27},[16,124,31],{},[16,126,34],{},[16,128,37],{},{"title":39,"searchDepth":40,"depth":40,"links":130},[],{},{"title":5,"description":44},[42],{"id":135,"title":136,"author":137,"body":138,"category":366,"cover":39,"date":367,"description":368,"extension":45,"meta":369,"navigation":47,"path":370,"published":47,"seo":371,"stem":372,"tags":373,"updated":44,"__hash__":376},"blog\u002Fblog\u002Fcss-grid-guide.md","CSS Grid 布局完全指南","yunhai",{"type":8,"value":139,"toc":357},[140,143,146,150,153,242,245,250,253,275,278,281,323,326,329,347,350,353],[11,141,136],{"id":142},"css-grid-布局完全指南",[16,144,145],{},"CSS Grid 是现代 CSS 中最强大的布局系统之一。本文将带你从零掌握它。",[147,148,149],"h2",{"id":149},"基础概念",[16,151,152],{},"创建一个 Grid 容器非常简单：",[154,155,159],"pre",{"className":156,"code":157,"language":158,"meta":39,"style":39},"language-css shiki shiki-themes github-light github-dark",".container {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 20px;\n}\n","css",[160,161,162,175,190,220,236],"code",{"__ignoreMap":39},[163,164,167,171],"span",{"class":165,"line":166},"line",1,[163,168,170],{"class":169},"sScJk",".container",[163,172,174],{"class":173},"sVt8B"," {\n",[163,176,177,181,184,187],{"class":165,"line":40},[163,178,180],{"class":179},"sj4cs","  display",[163,182,183],{"class":173},": ",[163,185,186],{"class":179},"grid",[163,188,189],{"class":173},";\n",[163,191,193,196,198,201,204,207,210,213,217],{"class":165,"line":192},3,[163,194,195],{"class":179},"  grid-template-columns",[163,197,183],{"class":173},[163,199,200],{"class":179},"repeat",[163,202,203],{"class":173},"(",[163,205,206],{"class":179},"3",[163,208,209],{"class":173},", ",[163,211,212],{"class":179},"1",[163,214,216],{"class":215},"szBVR","fr",[163,218,219],{"class":173},");\n",[163,221,223,226,228,231,234],{"class":165,"line":222},4,[163,224,225],{"class":179},"  gap",[163,227,183],{"class":173},[163,229,230],{"class":179},"20",[163,232,233],{"class":215},"px",[163,235,189],{"class":173},[163,237,239],{"class":165,"line":238},5,[163,240,241],{"class":173},"}\n",[147,243,244],{"id":244},"常用属性",[246,247,249],"h3",{"id":248},"grid-template-columns-rows","grid-template-columns \u002F rows",[16,251,252],{},"定义网格的列和行：",[154,254,256],{"className":156,"code":255,"language":158,"meta":39,"style":39},"grid-template-columns: 200px 1fr 1fr;\ngrid-template-rows: auto 1fr auto;\n",[160,257,258,267],{"__ignoreMap":39},[163,259,260,264],{"class":165,"line":166},[163,261,263],{"class":262},"s9eBZ","grid-template-columns",[163,265,266],{"class":173},": 200px 1fr 1fr;\n",[163,268,269,272],{"class":165,"line":40},[163,270,271],{"class":262},"grid-template-rows",[163,273,274],{"class":173},": auto 1fr auto;\n",[246,276,277],{"id":277},"grid-area",[16,279,280],{},"命名网格区域：",[154,282,284],{"className":156,"code":283,"language":158,"meta":39,"style":39},".container {\n  grid-template-areas:\n    \"header header header\"\n    \"sidebar main main\"\n    \"footer footer footer\";\n}\n",[160,285,286,292,300,306,311,318],{"__ignoreMap":39},[163,287,288,290],{"class":165,"line":166},[163,289,170],{"class":169},[163,291,174],{"class":173},[163,293,294,297],{"class":165,"line":40},[163,295,296],{"class":179},"  grid-template-areas",[163,298,299],{"class":173},":\n",[163,301,302],{"class":165,"line":192},[163,303,305],{"class":304},"sZZnC","    \"header header header\"\n",[163,307,308],{"class":165,"line":222},[163,309,310],{"class":304},"    \"sidebar main main\"\n",[163,312,313,316],{"class":165,"line":238},[163,314,315],{"class":304},"    \"footer footer footer\"",[163,317,189],{"class":173},[163,319,321],{"class":165,"line":320},6,[163,322,241],{"class":173},[147,324,325],{"id":325},"响应式布局",[16,327,328],{},"Grid 天然支持响应式设计：",[154,330,332],{"className":156,"code":331,"language":158,"meta":39,"style":39},"grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n",[160,333,334],{"__ignoreMap":39},[163,335,336,338,341,344],{"class":165,"line":166},[163,337,263],{"class":262},[163,339,340],{"class":173},": repeat(",[163,342,343],{"class":262},"auto-fit",[163,345,346],{"class":173},", minmax(300px, 1fr));\n",[147,348,349],{"id":349},"总结",[16,351,352],{},"CSS Grid 让复杂布局变得简单，是现代前端开发不可或缺的技能。",[354,355,356],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":39,"searchDepth":40,"depth":40,"links":358},[359,360,364,365],{"id":149,"depth":40,"text":149},{"id":244,"depth":40,"text":244,"children":361},[362,363],{"id":248,"depth":192,"text":249},{"id":277,"depth":192,"text":277},{"id":325,"depth":40,"text":325},{"id":349,"depth":40,"text":349},"教程","2025-03-28","从基础到进阶，全面掌握 CSS Grid 布局系统",{},"\u002Fblog\u002Fcss-grid-guide",{"title":136,"description":368},"blog\u002Fcss-grid-guide",[374,375,366],"CSS","前端","hA_2DGp2lshG-F4DcjeYmjdJ6Z-aq7xe6tISrsrswjQ",{"id":378,"title":379,"author":137,"body":380,"category":101,"cover":39,"date":437,"description":438,"extension":45,"meta":439,"navigation":47,"path":440,"published":47,"seo":441,"stem":442,"tags":443,"updated":44,"__hash__":444},"blog\u002Fblog\u002Fdaily-thoughts.md","程序员的日常思考",{"type":8,"value":381,"toc":432},[382,384,387,390,393,399,402,405,418,421,424,429],[11,383,379],{"id":379},[16,385,386],{},"写代码久了，总会有一些关于生活的思考。",[147,388,389],{"id":389},"关于专注",[16,391,392],{},"在这个信息爆炸的时代，保持专注变得越来越困难。但恰恰是深度工作的能力，让我们能够创造出真正有价值的东西。",[394,395,396],"blockquote",{},[16,397,398],{},"并非所有的忙碌都是生产力。",[147,400,401],{"id":401},"关于学习",[16,403,404],{},"技术的更新速度越来越快，但核心的思维方式是不变的。学会学习，比学会某个具体技术更重要。",[406,407,408,412,415],"ul",{},[409,410,411],"li",{},"理解原理而非记忆 API",[409,413,414],{},"动手实践而非只看教程",[409,416,417],{},"教会他人来验证自己的理解",[147,419,420],{"id":420},"关于平衡",[16,422,423],{},"生活不仅仅是代码。阅读、运动、社交，这些看似与技术无关的事情，反而能让我们成为更好的程序员。",[394,425,426],{},[16,427,428],{},"代码之外的世界，同样精彩。",[16,430,431],{},"愿每一位技术人都能找到属于自己的节奏。",{"title":39,"searchDepth":40,"depth":40,"links":433},[434,435,436],{"id":389,"depth":40,"text":389},{"id":401,"depth":40,"text":401},{"id":420,"depth":40,"text":420},"2025-04-12","关于技术、生活与平衡的一些随笔",{},"\u002Fblog\u002Fdaily-thoughts",{"title":379,"description":438},"blog\u002Fdaily-thoughts",[42,101],"NI_LqxObDgGj2ltzPGEhOyylhJtTRBeR3vvRXFZFvfY",{"id":446,"title":447,"author":448,"body":449,"category":735,"cover":39,"date":736,"description":737,"extension":45,"meta":738,"navigation":47,"path":739,"published":47,"seo":740,"stem":741,"tags":742,"updated":44,"__hash__":746},"blog\u002Fblog\u002Fgetting-started-with-nuxt4.md","使用 Nuxt 4 构建现代博客","xingchen",{"type":8,"value":450,"toc":726},[451,454,457,461,464,490,493,497,504,581,585,588,660,664,671,718,720,723],[11,452,447],{"id":453},"使用-nuxt-4-构建现代博客",[16,455,456],{},"在这篇文章中，我们将探索如何使用 Nuxt 4 构建一个功能完整的现代博客系统。",[147,458,460],{"id":459},"为什么选择-nuxt-4","为什么选择 Nuxt 4？",[16,462,463],{},"Nuxt 4 带来了许多令人兴奋的新特性：",[406,465,466,472,478,484],{},[409,467,468,471],{},[66,469,470],{},"更好的性能"," - 更快的冷启动和热重载",[409,473,474,477],{},[66,475,476],{},"改进的 DX"," - 更直观的配置和 API",[409,479,480,483],{},[66,481,482],{},"原生 TypeScript"," - 完整的类型支持",[409,485,486,489],{},[66,487,488],{},"SSR\u002FSSG 灵活切换"," - 根据需求选择渲染模式",[147,491,492],{"id":492},"核心功能",[246,494,496],{"id":495},"_1-markdown-内容管理","1. Markdown 内容管理",[16,498,499,500,503],{},"使用 ",[160,501,502],{},"@nuxt\u002Fcontent"," 模块，我们可以轻松地管理 Markdown 格式的文章：",[154,505,509],{"className":506,"code":507,"language":508,"meta":39,"style":39},"language-typescript shiki shiki-themes github-light github-dark","const articles = await queryContent('\u002Fblog')\n  .where({ published: { $eq: true } })\n  .sort({ date: -1 })\n  .find()\n","typescript",[160,510,511,536,553,571],{"__ignoreMap":39},[163,512,513,516,519,522,525,528,530,533],{"class":165,"line":166},[163,514,515],{"class":215},"const",[163,517,518],{"class":179}," articles",[163,520,521],{"class":215}," =",[163,523,524],{"class":215}," await",[163,526,527],{"class":169}," queryContent",[163,529,203],{"class":173},[163,531,532],{"class":304},"'\u002Fblog'",[163,534,535],{"class":173},")\n",[163,537,538,541,544,547,550],{"class":165,"line":40},[163,539,540],{"class":173},"  .",[163,542,543],{"class":169},"where",[163,545,546],{"class":173},"({ published: { $eq: ",[163,548,549],{"class":179},"true",[163,551,552],{"class":173}," } })\n",[163,554,555,557,560,563,566,568],{"class":165,"line":192},[163,556,540],{"class":173},[163,558,559],{"class":169},"sort",[163,561,562],{"class":173},"({ date: ",[163,564,565],{"class":215},"-",[163,567,212],{"class":179},[163,569,570],{"class":173}," })\n",[163,572,573,575,578],{"class":165,"line":222},[163,574,540],{"class":173},[163,576,577],{"class":169},"find",[163,579,580],{"class":173},"()\n",[246,582,584],{"id":583},"_2-响应式设计","2. 响应式设计",[16,586,587],{},"结合 TailwindCSS，我们可以快速构建响应式布局：",[154,589,593],{"className":590,"code":591,"language":592,"meta":39,"style":39},"language-html shiki shiki-themes github-light github-dark","\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\">\n  \u003CArticleCard v-for=\"article in articles\" :key=\"article._id\" :article=\"article\" \u002F>\n\u003C\u002Fdiv>\n","html",[160,594,595,615,651],{"__ignoreMap":39},[163,596,597,600,603,606,609,612],{"class":165,"line":166},[163,598,599],{"class":173},"\u003C",[163,601,602],{"class":262},"div",[163,604,605],{"class":169}," class",[163,607,608],{"class":173},"=",[163,610,611],{"class":304},"\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\"",[163,613,614],{"class":173},">\n",[163,616,617,620,624,627,629,632,635,637,640,643,645,648],{"class":165,"line":40},[163,618,619],{"class":173},"  \u003C",[163,621,623],{"class":622},"s7hpK","ArticleCard",[163,625,626],{"class":169}," v-for",[163,628,608],{"class":173},[163,630,631],{"class":304},"\"article in articles\"",[163,633,634],{"class":169}," :key",[163,636,608],{"class":173},[163,638,639],{"class":304},"\"article._id\"",[163,641,642],{"class":169}," :article",[163,644,608],{"class":173},[163,646,647],{"class":304},"\"article\"",[163,649,650],{"class":173}," \u002F>\n",[163,652,653,656,658],{"class":165,"line":192},[163,654,655],{"class":173},"\u003C\u002F",[163,657,602],{"class":262},[163,659,614],{"class":173},[246,661,663],{"id":662},"_3-暗色模式","3. 暗色模式",[16,665,666,667,670],{},"通过 ",[160,668,669],{},"@nuxtjs\u002Fcolor-mode"," 模块实现暗色模式切换：",[154,672,674],{"className":506,"code":673,"language":508,"meta":39,"style":39},"const colorMode = useColorMode()\ncolorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark'\n",[160,675,676,690],{"__ignoreMap":39},[163,677,678,680,683,685,688],{"class":165,"line":166},[163,679,515],{"class":215},[163,681,682],{"class":179}," colorMode",[163,684,521],{"class":215},[163,686,687],{"class":169}," useColorMode",[163,689,580],{"class":173},[163,691,692,695,697,700,703,706,709,712,715],{"class":165,"line":40},[163,693,694],{"class":173},"colorMode.preference ",[163,696,608],{"class":215},[163,698,699],{"class":173}," colorMode.value ",[163,701,702],{"class":215},"===",[163,704,705],{"class":304}," 'dark'",[163,707,708],{"class":215}," ?",[163,710,711],{"class":304}," 'light'",[163,713,714],{"class":215}," :",[163,716,717],{"class":304}," 'dark'\n",[147,719,349],{"id":349},[16,721,722],{},"Nuxt 4 为现代博客开发提供了强大的基础设施，让我们可以专注于内容创作本身。",[354,724,725],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}",{"title":39,"searchDepth":40,"depth":40,"links":727},[728,729,734],{"id":459,"depth":40,"text":460},{"id":492,"depth":40,"text":492,"children":730},[731,732,733],{"id":495,"depth":192,"text":496},{"id":583,"depth":192,"text":584},{"id":662,"depth":192,"text":663},{"id":349,"depth":40,"text":349},"技术","2025-04-10","从零开始使用 Nuxt 4、Vue 3 和 TailwindCSS 构建一个现代化的博客系统",{},"\u002Fblog\u002Fgetting-started-with-nuxt4",{"title":447,"description":737},"blog\u002Fgetting-started-with-nuxt4",[743,744,745],"Nuxt","Vue3","TypeScript","8VJSHFDxti_0ZtB3iqW5xqnFj30ZIGVhnmj7T9-9k4U",{"id":748,"title":749,"author":137,"body":750,"category":823,"cover":39,"date":824,"description":825,"extension":45,"meta":826,"navigation":47,"path":827,"published":47,"seo":828,"stem":829,"tags":830,"updated":44,"__hash__":833},"blog\u002Fblog\u002Fhello-world.md","欢迎来到云海-NWUA联合报",{"type":8,"value":751,"toc":819},[752,755,758,761,764,767,778,781,784,811,816],[11,753,749],{"id":754},"欢迎来到云海-nwua联合报",[16,756,757],{},"亲爱的读者们，大家好！",[16,759,760],{},"云海-NWUA联合报正式成立了！这是一个关于技术与创作的博客平台，我们将在这里分享技术文章、生活感悟、教程指南等内容。",[147,762,763],{"id":763},"我们的愿景",[16,765,766],{},"我们希望通过这个平台：",[406,768,769,772,775],{},[409,770,771],{},"📝 分享有价值的技术知识",[409,773,774],{},"🎨 记录创作的灵感与过程",[409,776,777],{},"🌊 与读者一起在知识的云海中探索",[147,779,780],{"id":780},"接下来的计划",[16,782,783],{},"在未来的日子里，我们将持续发布以下类型的内容：",[785,786,787,793,799,805],"ol",{},[409,788,789,792],{},[66,790,791],{},"技术文章"," - 前端、后端、DevOps 等技术领域的深度文章",[409,794,795,798],{},[66,796,797],{},"教程指南"," - 从零开始的手把手教程",[409,800,801,804],{},[66,802,803],{},"生活随笔"," - 技术人的日常与思考",[409,806,807,810],{},[66,808,809],{},"行业资讯"," - 值得关注的技术动态",[394,812,813],{},[16,814,815],{},"\"在云海之上，我们看见更广阔的世界。\"",[16,817,818],{},"感谢你的关注，让我们一起扬帆起航！🚀",{"title":39,"searchDepth":40,"depth":40,"links":820},[821,822],{"id":763,"depth":40,"text":763},{"id":780,"depth":40,"text":780},"资讯","2025-04-01","这是云海-NWUA联合报的第一篇文章，我们正式启航！",{},"\u002Fblog\u002Fhello-world",{"title":749,"description":825},"blog\u002Fhello-world",[831,832],"公告","创刊","rc5Pwhp5nwiSG8hVPJnZ6PPPCfa29UixmPT1HbAZu20",{"id":835,"title":836,"author":6,"body":837,"category":735,"cover":39,"date":1148,"description":1149,"extension":45,"meta":1150,"navigation":47,"path":1151,"published":47,"seo":1152,"stem":1153,"tags":1154,"updated":44,"__hash__":1155},"blog\u002Fblog\u002Ftypescript-advanced-types.md","TypeScript 高级类型技巧",{"type":8,"value":838,"toc":1141},[839,842,845,848,851,941,944,947,1060,1063,1066,1127,1130,1133,1135,1138],[11,840,836],{"id":841},"typescript-高级类型技巧",[16,843,844],{},"TypeScript 的类型系统远比想象中强大。本文将介绍一些实用的高级类型技巧。",[147,846,847],{"id":847},"条件类型",[16,849,850],{},"条件类型让我们可以根据类型条件选择不同的类型：",[154,852,854],{"className":506,"code":853,"language":508,"meta":39,"style":39},"type IsString\u003CT> = T extends string ? true : false\n\ntype A = IsString\u003Cstring> \u002F\u002F true\ntype B = IsString\u003Cnumber> \u002F\u002F false\n",[160,855,856,893,898,920],{"__ignoreMap":39},[163,857,858,861,864,866,869,872,874,877,880,883,885,888,890],{"class":165,"line":166},[163,859,860],{"class":215},"type",[163,862,863],{"class":169}," IsString",[163,865,599],{"class":173},[163,867,868],{"class":169},"T",[163,870,871],{"class":173},"> ",[163,873,608],{"class":215},[163,875,876],{"class":169}," T",[163,878,879],{"class":215}," extends",[163,881,882],{"class":179}," string",[163,884,708],{"class":215},[163,886,887],{"class":179}," true",[163,889,714],{"class":215},[163,891,892],{"class":179}," false\n",[163,894,895],{"class":165,"line":40},[163,896,897],{"emptyLinePlaceholder":47},"\n",[163,899,900,902,905,907,909,911,914,916],{"class":165,"line":192},[163,901,860],{"class":215},[163,903,904],{"class":169}," A",[163,906,521],{"class":215},[163,908,863],{"class":169},[163,910,599],{"class":173},[163,912,913],{"class":179},"string",[163,915,871],{"class":173},[163,917,919],{"class":918},"sJ8bj","\u002F\u002F true\n",[163,921,922,924,927,929,931,933,936,938],{"class":165,"line":222},[163,923,860],{"class":215},[163,925,926],{"class":169}," B",[163,928,521],{"class":215},[163,930,863],{"class":169},[163,932,599],{"class":173},[163,934,935],{"class":179},"number",[163,937,871],{"class":173},[163,939,940],{"class":918},"\u002F\u002F false\n",[147,942,943],{"id":943},"映射类型",[16,945,946],{},"映射类型可以基于已有类型创建新类型：",[154,948,950],{"className":506,"code":949,"language":508,"meta":39,"style":39},"type Readonly\u003CT> = {\n  readonly [P in keyof T]: T[P]\n}\n\ntype Optional\u003CT> = {\n  [P in keyof T]?: T[P]\n}\n",[160,951,952,969,1004,1008,1012,1029,1055],{"__ignoreMap":39},[163,953,954,956,959,961,963,965,967],{"class":165,"line":166},[163,955,860],{"class":215},[163,957,958],{"class":169}," Readonly",[163,960,599],{"class":173},[163,962,868],{"class":169},[163,964,871],{"class":173},[163,966,608],{"class":215},[163,968,174],{"class":173},[163,970,971,974,977,980,983,986,988,991,994,996,999,1001],{"class":165,"line":40},[163,972,973],{"class":215},"  readonly",[163,975,976],{"class":173}," [",[163,978,979],{"class":169},"P",[163,981,982],{"class":215}," in",[163,984,985],{"class":215}," keyof",[163,987,876],{"class":169},[163,989,990],{"class":173},"]",[163,992,993],{"class":215},":",[163,995,876],{"class":169},[163,997,998],{"class":173},"[",[163,1000,979],{"class":169},[163,1002,1003],{"class":173},"]\n",[163,1005,1006],{"class":165,"line":192},[163,1007,241],{"class":173},[163,1009,1010],{"class":165,"line":222},[163,1011,897],{"emptyLinePlaceholder":47},[163,1013,1014,1016,1019,1021,1023,1025,1027],{"class":165,"line":238},[163,1015,860],{"class":215},[163,1017,1018],{"class":169}," Optional",[163,1020,599],{"class":173},[163,1022,868],{"class":169},[163,1024,871],{"class":173},[163,1026,608],{"class":215},[163,1028,174],{"class":173},[163,1030,1031,1034,1036,1038,1040,1042,1044,1047,1049,1051,1053],{"class":165,"line":320},[163,1032,1033],{"class":173},"  [",[163,1035,979],{"class":169},[163,1037,982],{"class":215},[163,1039,985],{"class":215},[163,1041,876],{"class":169},[163,1043,990],{"class":173},[163,1045,1046],{"class":215},"?:",[163,1048,876],{"class":169},[163,1050,998],{"class":173},[163,1052,979],{"class":169},[163,1054,1003],{"class":173},[163,1056,1058],{"class":165,"line":1057},7,[163,1059,241],{"class":173},[147,1061,1062],{"id":1062},"模板字面量类型",[16,1064,1065],{},"TypeScript 4.1 引入了模板字面量类型：",[154,1067,1069],{"className":506,"code":1068,"language":508,"meta":39,"style":39},"type EventName\u003CT extends string> = `on${Capitalize\u003CT>}`\ntype ClickEvent = EventName\u003C'click'> \u002F\u002F 'onClick'\n",[160,1070,1071,1106],{"__ignoreMap":39},[163,1072,1073,1075,1078,1080,1082,1084,1086,1088,1090,1093,1096,1098,1100,1103],{"class":165,"line":166},[163,1074,860],{"class":215},[163,1076,1077],{"class":169}," EventName",[163,1079,599],{"class":173},[163,1081,868],{"class":169},[163,1083,879],{"class":215},[163,1085,882],{"class":179},[163,1087,871],{"class":173},[163,1089,608],{"class":215},[163,1091,1092],{"class":304}," `on${",[163,1094,1095],{"class":169},"Capitalize",[163,1097,599],{"class":304},[163,1099,868],{"class":169},[163,1101,1102],{"class":304},">",[163,1104,1105],{"class":304},"}`\n",[163,1107,1108,1110,1113,1115,1117,1119,1122,1124],{"class":165,"line":40},[163,1109,860],{"class":215},[163,1111,1112],{"class":169}," ClickEvent",[163,1114,521],{"class":215},[163,1116,1077],{"class":169},[163,1118,599],{"class":173},[163,1120,1121],{"class":304},"'click'",[163,1123,871],{"class":173},[163,1125,1126],{"class":918},"\u002F\u002F 'onClick'\n",[147,1128,1129],{"id":1129},"实战应用",[16,1131,1132],{},"这些高级类型在实际项目中非常有用，特别是在构建类型安全的 API 和工具函数时。",[147,1134,349],{"id":349},[16,1136,1137],{},"掌握 TypeScript 高级类型，可以让我们编写更安全、更具表达力的代码。",[354,1139,1140],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":39,"searchDepth":40,"depth":40,"links":1142},[1143,1144,1145,1146,1147],{"id":847,"depth":40,"text":847},{"id":943,"depth":40,"text":943},{"id":1062,"depth":40,"text":1062},{"id":1129,"depth":40,"text":1129},{"id":349,"depth":40,"text":349},"2025-04-15","深入理解 TypeScript 的高级类型系统，掌握条件类型、映射类型等技巧",{},"\u002Fblog\u002Ftypescript-advanced-types",{"title":836,"description":1149},"blog\u002Ftypescript-advanced-types",[745,375],"k7YCJ8VaGJZPRV5Cll9TZpxl6V7XAhysbNSuK8qUw0w",1776577690466]