[{"data":1,"prerenderedAt":604},["ShallowReactive",2],{"\u002F2026\u002F08\u002Fcirclepage":3,"index_posts":78,"surround-\u002F2026\u002F08\u002Fcirclepage":601},{"id":4,"title":5,"body":6,"categories":51,"date":53,"description":54,"draft":55,"extension":56,"image":57,"meta":58,"navigation":60,"path":61,"permalink":62,"published":62,"readingTime":63,"recommend":68,"references":62,"seo":69,"sitemap":70,"stem":71,"subtitle":62,"tags":72,"type":75,"updated":76,"__hash__":77},"content\u002Fposts\u002F2026\u002F08\u002FCirclePage.md","朋友圈大改",{"type":7,"value":8,"toc":44},"minimark",[9,13,17,20,30,33],[10,11,12],"h2",{"id":12},"前言",[14,15,16],"p",{},"原本想要在7月底发布的，但是因为一些问题，加上已经工作一个月有余，没啥时间去写。这不就来了嘛",[10,18,19],{"id":19},"更新亮点",[21,22,23,27],"ul",{},[24,25,26],"li",{},"1.基于友链文件(即Feeds.ts)的配置来更新筛选文章，解决了原先需要点击卡片头像才能知道最近更新多少篇，现可以完全浏览到从第一次爬取到现在的所有文章",[24,28,29],{},"2.基于作为灵感，新增了AI摘要(简介)，基于各种不同模型的名称来自动更新按钮图标，实现不同效果（同时增加了XX\u002FXXXX模型的摘要标注）",[10,31,32],{"id":32},"核心代码",[34,35,40],"pre",{"className":36,"code":38,"language":39},[37],"language-text","\u003Cscript setup lang=\"ts\">\nimport type { CircleArticleData } from '~\u002Ftypes\u002Fcircle'\n\nconst props = defineProps\u003C{\n  data: CircleArticleData\n  \u002F** 共享时间源（来自父组件），避免每张卡片各自创建定时器 *\u002F\n  now?: Date\n}>()\n\n\u002F** 24 小时阈值：超过则不再显示相对时间，直接展示原始请求时间 *\u002F\nconst HOURS_THRESHOLD = 24\n\n\u002F\u002F 独立定时器（仅在无共享时间源时作为回退）\nconst localNow = useNow({ interval: 60_000 })\n\n\u002F\u002F 优先使用父组件传入的共享时间源，减少全局定时器数量\nconst effectiveNow = computed\u003CDate>(() => {\n  if (props.now instanceof Date && !isNaN(props.now.getTime())) {\n    return props.now\n  }\n  return localNow.value\n})\n\n\u002F\u002F 将 props.data.updated 解析为 Date；解析失败则返回 null\nconst updatedDate = computed(() => {\n  if (!props.data.updated)\n    return null\n  const d = new Date(props.data.updated)\n  return Number.isNaN(d.getTime()) ? null : d\n})\n\n\u002F\u002F 是否处于 24 小时窗口内（仅展示\"动态\"相对时间；超出则展示原始时间）\nconst isWithin24h = computed(() => {\n  if (!updatedDate.value)\n    return false\n  const diffMs = effectiveNow.value.getTime() - updatedDate.value.getTime()\n  \u002F\u002F 防御未来时间：未来时间（diffMs \u003C 0）走原始时间分支\n  return diffMs >= 0 && diffMs \u003C HOURS_THRESHOLD * 60 * 60 * 1000\n})\n\n\u002F** 客户端挂载守卫 — 避免 SSR\u002F客户端时间差导致 v-if 分支切换产生 hydration mismatch *\u002F\nconst ready = ref(false)\nonMounted(() => { ready.value = true })\n\n\u002F**\n * AI 模型关键词 → 图标 映射\n * 按子串匹配，顺序敏感：长关键词放前面，避免短关键词提前误匹配\n * 如 \"bigmodel-glm-4-flash\" 匹配到 \"glm\" → 显示 GLM 对应图标\n *\u002F\nconst MODEL_ICON_MAP: [keyword: string, icon: string][] = [\n  ['deepseek',      'hugeicons:deepseek'],\n  ['chatglm',       'mingcute:ai-line'],\n  ['glm',           'model iconfont model-icon-glm'],\n  ['gpt-4o',        'simple-icons:openai'],\n  ['gpt-4',         'simple-icons:openai'],\n  ['gpt',           'simple-icons:openai'],\n  ['o1',            'simple-icons:openai'],\n  ['o3',            'simple-icons:openai'],\n  ['claude',        'hugeicons:claude'],\n  ['gemini',        'hugeicons:google-gemini'],\n  ['gemma',          'model iconfont model-icon-gemma'],\n  ['qwen',          'hugeicons:qwen'],\n  ['kimi',          'model iconfont model-icon-kimi'],\n  ['minimax',       'model iconfont model-icon-minimax'],\n  ['hunyuan',       'model iconfont model-icon-hunyuan'],\n  ['doubao',        'model iconfont model-icon-doubao'],\n  ['moonshot',      'model iconfont model-icon-moonshot'],\n]\n\n\u002F** 根据 ai_model 按子串匹配返回对应图标，无匹配则回退默认图标 *\u002F\nconst modelIcon = computed(() => {\n  const model = props.data.ai_model?.toLowerCase() ?? ''\n  for (const [keyword, icon] of MODEL_ICON_MAP) {\n    if (model.includes(keyword)) return icon\n  }\n  return 'mdi-robot'\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"circle-card\">\n    \u003Cdiv class=\"circle-card-top\">\n      \u003Ch6 class=\"circle-card-top-title\">\n        \u003Ca class=\"circle-card-top-link\" :href=\"props.data.link\" target=\"_blank\" :title=\"props.data.title\">\n          {{ props.data.title }}\n        \u003C\u002Fa>\n      \u003C\u002Fh6>\n      \u003Cdiv class=\"circle-card-top-summary\">\n        {{ props.data.summary }}\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"circle-card-footer\">\n      \u003Cdiv class=\"circle-card-footer-left\">\n        \u003Ca class=\"circle-card-footer-info\" :href=\"props.data.link\" target=\"_blank\" :title=\"props.data.author\">\n          \u003CNuxtImg class=\"circle-card-footer-image\" :src=\"props.data.avatar\" width=\"48\" height=\"48\"\u002F>\n          \u003Cdiv class=\"circle-card-footer-author\">\n            {{ props.data.author }}\n          \u003C\u002Fdiv>\n        \u003C\u002Fa>\n        \u003Cdiv class=\"circle-card-footer-summary\">\n          \u003CIcon\n            :name=\"modelIcon\"\n            class=\"circle-card-footer-icon\"\n            size=\"1.2em\"\n            v-tip=\"`该文章使用 ${props.data.ai_model} 作为摘要`\"\n          \u002F>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"circle-card-footer-right\">\n        \u003Cdiv class=\"circle-card-footer-time\">\n          \u003C!-- 1) 解析失败：回退原始字符串，避免空白 -->\n          \u003Ctemplate v-if=\"!updatedDate\">\n            {{ props.data.updated }}\n          \u003C\u002Ftemplate>\n          \u003C!-- 2) 24 小时内：相对时间（SSR 走日期分支避免 mismatch；客户端 mount 后切为相对时间） -->\n          \u003Ctemplate v-else-if=\"ready && isWithin24h\">\n            \u003CNuxtTime\n              :datetime=\"updatedDate.toISOString()\"\n              relative\n            \u002F>\n          \u003C\u002Ftemplate>\n          \u003C!-- 3) 超过 24 小时 \u002F 未来时间 \u002F SSR 暂态：展示原始请求时间 -->\n          \u003Ctemplate v-else>\n            {{ props.data.updated }}\n          \u003C\u002Ftemplate>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n\n\u003Cstyle lang=\"scss\" scoped>\n@use '~\u002Fassets\u002Fdiy\u002Ffont.scss';\n\n.circle-card {\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n  gap: .5em;\n  padding: 0.8rem 0.8rem;\n  border-radius: 0.5rem;\n  background-color: var(--c-bg-3);\n  overflow: hidden;\n  .dark & {\n    --c-bg-3: hsl(0deg 0% 60% \u002F .1);\n  }\n  --c-bg-3: hsl(0deg 0% 100%);\n  \n  .circle-card-top {\n    word-break: break-all;\n    overflow-wrap: anywhere;\n    display: flex;\n    flex-direction: column;\n    gap: .5em;\n    .circle-card-top-title {\n      overflow: hidden;\n      text-overflow: ellipsis;\n      display: -webkit-box;\n      -webkit-box-orient: vertical;\n      -webkit-line-clamp: 1;\n      text-transform: capitalize;\n      word-break: break-all;\n      font-size: 0.9em;\n      font-weight: 700;\n      .circle-card-top-link {\n        cursor: pointer;\n        text-decoration: none;\n        word-break: break-all;\n        transition: .7s cubic-bezier(.6, .1, 0, 1), background-position 0s;\n        &:where(:hover, :focus, :active) {\n          color: hsl(var(--thyuu--main-color));\n        }\n        &:where(:not([role=button], .button)) {\n          background: var(--a-line-slide, linear-gradient(90deg, hsl(var(--thyuu--main-color) 0deg 70% 70% \u002F 50%), hsl(var(--thyuu--subs-color) \u002F 50%)) no-repeat var(--a-line-trans, 100%) 100% \u002F 0 1px);\n          &:hover {\n            background-position-x: var(--a-line-trans, 0%);\n            background-size: 100% 1px;\n          }\n        }\n      }\n    }\n    .circle-card-top-summary {\n      font-size: 0.69rem;\n    }\n  }\n  .circle-card-footer {\n    display: flex;\n    flex-direction: row;\n    align-items: center;\n    gap: 0 .5em;\n    justify-content: space-between;\n    font-size: .75rem;\n    .circle-card-footer-left {\n      display: flex;\n      gap: 1em;\n      align-items: center;\n      .circle-card-footer-info {\n        display: flex;\n        gap: .5em;\n        align-items: center;\n        .circle-card-footer-image {\n          flex: none;\n          transition: all .5s;\n          background: white;\n          box-shadow: 0 0 15px 0px rgb(0 0 0 \u002F 10%);\n          box-shadow: 0 0 5rem .5rem rgb(var(--plant-rgb) \u002F .4), 0 0.5rem 1rem 0rem rgb(var(--plant-rgb-sub) \u002F .2);\n          outline: .2rem solid rgb(var(--plant-rgb) \u002F .1);\n          height: var(--avatar-size, 2em);\n          width: var(--avatar-size, 2em);\n          border-radius: 50%;\n          background: var(--thyuu--color-back-white);\n          object-fit: cover;\n          object-position: top;\n        }\n        .circle-card-footer-author {\n          overflow: hidden;\n          text-overflow: ellipsis;\n          display: -webkit-box;\n          -webkit-box-orient: vertical;\n          -webkit-line-clamp: 1;\n          text-transform: capitalize;\n          word-break: break-all;\n        }\n      }\n      .circle-card-footer-summary {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        padding: 2px;\n        height: 25px;\n        width: 25px;\n        min-width: 25px;\n        background-color: var(--c-bg-2);\n        border-radius: 50%;\n        transition: box-shadow .2s;\n        flex-shrink: 0;\n        position: relative;\n        z-index: 10;\n        pointer-events: auto;\n      }\n    }\n    .circle-card-footer-right {\n      .circle-card-footer-time {\n        color: hsl(var(--thyuu--color-font) \u002F .6);\n      }\n    }\n  }\n}\n\u003C\u002Fstyle>\n","text",[41,42,38],"code",{"__ignoreMap":43},"",{"title":43,"searchDepth":45,"depth":45,"links":46},4,[47,49,50],{"id":12,"depth":48,"text":12},2,{"id":19,"depth":48,"text":19},{"id":32,"depth":48,"text":32},[52],"站点魔改","2026-08-08 14:00:00","该文章主要写了对于低价机器的试水，并提醒是超开类型的机器。在测试的过程中发现机器性能较高，且展示出机器的具体价格，并单独列出只有精简版未采用完整版测试。",false,"md","\u002Fimage\u002FPostCover\u002FcirclePage.avif",{"slots":59},{},true,"\u002F2026\u002F08\u002Fcirclepage",null,{"text":64,"minutes":65,"time":66,"words":67},"6 min read",5.42,325200,1084,1,{"title":5,"description":54},{"loc":61},"posts\u002F2026\u002F08\u002FCirclePage",[73,74],"Nuxt","页面","tech","2026-08-08 22:00:00","b9mvpCfAutKF7NBF-fkRd6tinSoJLqF3GssZKhdZAjM",[79,96,110,124,138,151,164,176,190,202,213,226,241,256,269,286,300,315,330,345,360,376,393,409,421,435,448,460,474,486,496,508,521,533,544,555,566,570,583,592],{"categories":80,"date":82,"description":83,"image":62,"path":84,"readingTime":85,"recommend":62,"tags":90,"title":94,"type":75,"updated":95},[81],"技术探索","2023-12-06 12:45:00","本篇转载三种不同方案（已经放好原文章链接）","\u002F2023\u002F03\u002Fessaythree",{"text":86,"minutes":87,"time":88,"words":89},"48 min read",47.34,2840400,9468,[91,92,93],"hexo","butterfly","美化","即刻短文的三种部署方案","2023-12-07 14:09:00",{"categories":97,"date":98,"description":99,"image":100,"path":101,"readingTime":102,"recommend":68,"tags":107,"title":108,"type":75,"updated":109},[52],"2024-04-19 10:00:00","友链页面美化以及添加功能","\u002Fimage\u002FPostCover\u002FflinkPage.avif","\u002F2024\u002F04\u002Fflinkpagemeihua",{"text":103,"minutes":104,"time":105,"words":106},"11 min read",10.8,648000,2160,[91,92],"友链魔改","2025-04-19 12:09:00",{"categories":111,"date":112,"description":113,"image":114,"path":115,"readingTime":116,"recommend":68,"tags":121,"title":122,"type":75,"updated":123},[52],"2025-02-05 09:00:00","这篇文章讲述在博客中对导航栏进行修改，并添加多个产品页面地址，且采用安知鱼的导航栏CSS样式表。","\u002Fimage\u002FPostCover\u002FnavMuogai.avif","\u002F2025\u002F02\u002Fbutterflynavadd",{"text":117,"minutes":118,"time":119,"words":120},"9 min read",8.585,515100,1717,[91,92],"butterfly导航栏修改方案","2025-03-05 10:00:00",{"categories":125,"date":126,"description":127,"image":128,"path":129,"readingTime":130,"recommend":68,"tags":135,"title":136,"type":75,"updated":137},[52],"2025-02-27 10:10:55","本篇文章讲述了如何在博客的底部模块进行魔改添加图标、来源图片、返回顶部以及建站时间，对建站时间进行js内联到模块中。","\u002Fimage\u002FPostCover\u002FfooterMeihua.avif","\u002F2025\u002F02\u002Ffooterqcqxstyle",{"text":131,"minutes":132,"time":133,"words":134},"4 min read",3.31,198600,662,[91,92,93],"轻笑底部美化","2025-02-28 10:00:00",{"categories":139,"date":140,"description":141,"image":142,"path":143,"readingTime":144,"recommend":62,"tags":148,"title":149,"type":75,"updated":150},[52],"2025-03-24 08:00:09","这篇简述如何给自己博客中的归档、分类、标签页三个页面的文章卡片加上所属分类和标签，并说明了具体的实践环境，以最大限度的方式进行CSS美化。但也请注意要经常备份以免出现大量错误。","\u002Fimage\u002FPostCover\u002FarchiveMougai.avif","\u002F2025\u002F03\u002Farchivemougai",{"text":131,"minutes":145,"time":146,"words":147},3.08,184800,616,[91,92],"给页面加上所属分类和标签以及美化","2025-03-24 10:56:09",{"categories":152,"date":153,"description":154,"image":155,"path":156,"readingTime":157,"recommend":62,"tags":161,"title":162,"type":75,"updated":163},[52],"2025-03-05 08:00:00","这篇文章讲述如何给自己博客中的归档、分类、标签页三个页面的文章卡片添加数字来进行编排，以及对添加的数字进行CSS美化，但也请注意要经常备份以免出现错误。","https:\u002F\u002Fsourceimage.s3.bitiful.net\u002Fimg\u002Fdefault_cover_29.avif?v=20260104","\u002F2025\u002F03\u002Fartice-sort",{"text":131,"minutes":158,"time":159,"words":160},3.48,208800,696,[91,92],"美化文章卡片显示数字","2025-03-06 18:00:00",{"categories":165,"date":153,"description":166,"image":167,"path":168,"readingTime":169,"recommend":62,"tags":174,"title":175,"type":75,"updated":163},[52],"这篇文章讲述如何在页面中添加模块以及使用CSS添加颜色以及背景图片。","https:\u002F\u002Fsourceimage.s3.bitiful.net\u002Fimg\u002Fdefault_cover_21.avif","\u002F2025\u002F03\u002Fbackgroud-qcqx",{"text":170,"minutes":171,"time":172,"words":173},"1 min read",0.71,42600,142,[91,92],"轻笑风格背景",{"categories":177,"date":178,"description":179,"image":180,"path":181,"readingTime":182,"recommend":62,"tags":187,"title":188,"type":75,"updated":189},[52],"2025-03-24 09:00:00","本文章以安知鱼的页面文件为模版进行大幅度修改，仿轻笑的关于页面的模块摆放以及调整CSS样式来进行细致魔改。","\u002Fimage\u002FPostCover\u002FbtfAboutPage.avif","\u002F2025\u002F03\u002Fbtfaboutpage",{"text":183,"minutes":184,"time":185,"words":186},"24 min read",23.275,1396500,4655,[91,92],"关于页面(butterfly)","2025-03-25 11:20:00",{"categories":191,"date":153,"description":192,"image":193,"path":194,"readingTime":195,"recommend":62,"tags":200,"title":201,"type":75,"updated":163},[52],"这篇文章讲述了如何美化博客侧边栏，并调整各个卡片内容的样式表。","\u002Fimage\u002FPostCover\u002FcardMeihua.avif","\u002F2025\u002F03\u002Fcardmeihua",{"text":196,"minutes":197,"time":198,"words":199},"5 min read",4.77,286200,954,[91,92],"卡片美化",{"categories":203,"date":153,"description":204,"image":205,"path":206,"readingTime":207,"recommend":62,"tags":211,"title":212,"type":75,"updated":163},[52],"从零开始魔改butterfly","\u002Fimage\u002FPostCover\u002FfunctionMeihua.avif","\u002F2025\u002F03\u002Ffunctionmeihua",{"text":170,"minutes":208,"time":209,"words":210},0.345,20700,69,[91,92],"功能美化",{"categories":214,"date":215,"description":216,"image":217,"path":218,"readingTime":219,"recommend":62,"tags":223,"title":224,"type":75,"updated":225},[52],"2025-03-01 10:00:00","本文依照轻笑的部分内容，参考首页banner写法以及对首页banner添加鼠标滚动以及移动端滑动，通过CSS样式进行美化整个首页banner，此篇文章重点讲述了如何解决轻笑给的js内容在首页会出现不断加载的问题。","\u002Fimage\u002FPostCover\u002FrandomPost.avif","\u002F2025\u002F03\u002Frandompost",{"text":64,"minutes":220,"time":221,"words":222},5.595,335700,1119,[91,92,93],"Banner随机文章展示(轻笑同款)","2025-03-05 12:09:00",{"categories":227,"date":228,"description":229,"image":230,"path":231,"readingTime":232,"recommend":236,"tags":237,"title":239,"type":75,"updated":240},[52],"2025-08-11 10:00:00","本篇文章讲述了添加模块代码并在博客的友情链接中添加模块，且使用css美化","\u002Fimage\u002FPostCover\u002FlinkTop.avif","\u002F2025\u002F08\u002Flinktop",{"text":117,"minutes":233,"time":234,"words":235},8.88,532800,1776,11,[73,238,93],"魔改","在友链页面添加滚动头像banner","2025-08-11 20:49:00",{"categories":242,"date":243,"description":244,"image":245,"path":246,"readingTime":247,"recommend":252,"tags":253,"title":254,"type":75,"updated":255},[52],"2025-08-22 10:00:00","近期将博客迁移至Nuxt框架时，重新搭建了「关于页面」。过程中添加了技能展示组件（skillinfo.vue），实现标签分组渲染；新建about.vue页面，整合个人信息、技能、偏好等多模块内容，并通过ts定义数据接口（about.ts\u002Fcreativity.ts）。","\u002Fimage\u002FPostCover\u002FnuxtAboutPage.avif","\u002F2025\u002F08\u002Fnuxtaboutpage",{"text":248,"minutes":249,"time":250,"words":251},"16 min read",15.92,955200,3184,10,[73,238,93],"关于页面(Nuxt)","2025-09-01 20:49:00",{"categories":257,"date":258,"description":259,"image":260,"path":261,"readingTime":262,"recommend":266,"tags":267,"title":268,"type":75,"updated":255},[52],"2025-09-02 10:00:00","本篇文章主要简述了如何给Nuxt框架添加站点详情","https:\u002F\u002Fwww.yjluo.top\u002Fimage\u002FPostCover\u002FsiteInfo.avif","\u002F2025\u002F09\u002Fsitelinkpageadd",{"text":196,"minutes":263,"time":264,"words":265},4.38,262800,876,9,[73,238,93],"添加站点详情页面",{"categories":270,"date":272,"description":273,"image":274,"path":275,"readingTime":276,"recommend":62,"tags":280,"title":283,"type":284,"updated":285},[271],"日志记录","2025-12-28 10:00:00","该文章详细记录了2025年中的上下半年所做的事情，并且还透露出后续计划中会干什么。而在前言中也写到此文为水字数而出，上下半年均写到更换框架与服务有关于的内容。对于未来计划中提到了要对一些网站进行恢复、以及明年将在文章中加入与自创小说有关的内容","\u002Fimage\u002FPostCover\u002FannualSummary.avif","\u002F2025\u002F12\u002Fannualsummary",{"text":131,"minutes":277,"time":278,"words":279},3.855,231300,771,[281,282],"总结",2025,"年度总结：旧去新","story","2025-12-28 20:49:00",{"categories":287,"date":288,"description":289,"image":290,"path":291,"readingTime":292,"recommend":266,"tags":297,"title":298,"type":75,"updated":299},[52],"2025-12-01 10:00:00","该文章详细介绍了基于Vue3+TypeScript开发的豆瓣追更记录系统，采用组件化架构实现两栏筛选菜单、动态加载动画和卡片式作品展示，通过Pinia状态管理+Vite构建工具实现数据流管理，集成防抖加载、虚拟滚动等性能优化方案。","\u002Fimage\u002FPostCover\u002FbanguimPage.avif","\u002F2025\u002F12\u002Fbanguimpageadd",{"text":293,"minutes":294,"time":295,"words":296},"23 min read",22.175,1330500,4435,[73,238,93],"添加追更历史","2025-12-01 20:49:00",{"categories":301,"date":302,"description":303,"image":304,"path":305,"readingTime":306,"recommend":311,"tags":312,"title":313,"type":75,"updated":314},[52],"2025-12-23 10:00:00","该文章介绍Nuxt博客适配中评论模块的Vue组件实现与Artalk评论系统单例管理逻辑，并提供具体的适配评论表情包的Json信息，评论功能有着KaTeX数学公式渲染、图片灯箱、动态监听以及管理逻辑的初始化、计数、暗黑模式切换等方式。","\u002Fimage\u002FPostCover\u002FcommentMeihua.avif","\u002F2025\u002F12\u002Fcommentadd",{"text":307,"minutes":308,"time":309,"words":310},"32 min read",31.72,1903200,6344,8,[73,238,93],"评论优化","2026-03-01 20:49:00",{"categories":316,"date":317,"description":318,"image":319,"path":320,"readingTime":321,"recommend":326,"tags":327,"title":328,"type":75,"updated":329},[52],"2025-12-03 10:05:09","该博客持续维护Nuxt框架博客系统，新增装备页面实现硬件\u002F外设分类展示，支持动态过滤、标签筛选与规格参数渲染，通过TypeScript定义数据接口，结合Vue3响应式布局与SCSS响应式设计，完成设备卡片动态加载、悬停动效及跨端适配优化，集成评论跳转与购买信息展示功能。","\u002Fimage\u002FPostCover\u002FequipmentPage.avif","\u002F2025\u002F12\u002Fequipmentpageadd",{"text":322,"minutes":323,"time":324,"words":325},"8 min read",7.28,436800,1456,7,[73,238,93],"添加装备页面","2025-12-03 20:49:09",{"categories":331,"date":332,"description":333,"image":334,"path":335,"readingTime":336,"recommend":341,"tags":342,"title":343,"type":75,"updated":344},[52],"2025-12-09 10:00:00","该文章记录了项目版本迭代中的UI优化与功能调整，包括增加可后期换配置且内置移动到赞赏总览触发效果的打赏弹窗、优化头部封面移动端预览、增加版权图标虚化及打赏入口、将本地desc预览改ai摘要样式、增加版权卡片及更换头部信息样式。","\u002Fimage\u002FPostCover\u002FpostMeihua.avif","\u002F2025\u002F12\u002Fpostpagexiugai",{"text":337,"minutes":338,"time":339,"words":340},"12 min read",11.165,669900,2233,6,[73,238,93],"文章美化","2025-12-09 20:49:00",{"categories":346,"date":347,"description":348,"image":349,"path":350,"readingTime":351,"recommend":356,"tags":357,"title":358,"type":75,"updated":359},[52],"2025-12-04 10:00:00","该文章记录了项目版本迭代中的UI优化与功能调整，包括站点详情卡片组件化改造（采用Badge组件优化布局）、分类卡片新增文章数量统计功能（重新严重问题）、标签卡片新增文章标签统计功能、博主信息模块的拆分与重构，同时删除了冗余的左侧图片和完整博主卡片，最终形成模块化组件结构（涉及5个核心组件及数据调用逻辑调整）。","\u002Fimage\u002FPostCover\u002FsmallCard.avif","\u002F2025\u002F12\u002Fsmallcardadd",{"text":352,"minutes":353,"time":354,"words":355},"10 min read",9.745,584700,1949,5,[73,238,93],"侧边组件美化","2025-12-04 20:49:00",{"categories":361,"date":362,"description":363,"image":364,"path":365,"readingTime":366,"recommend":62,"tags":371,"title":374,"type":75,"updated":375},[52],"2026-01-27 10:00:00","自定义全局的样式颜色，具有对特定CSS中所具有的自定义样式颜色来进行整合，并且作者还顺便水了一篇文章","\u002Fimage\u002FPostCover\u002FcolorStyleAll.avif","\u002F2026\u002F01\u002Fcolorstyleall",{"text":367,"minutes":368,"time":369,"words":370},"14 min read",13.155,789300,2631,[372,373],"全局颜色","自定义","自定义全局颜色","2026-01-27 20:49:00",{"categories":377,"date":378,"description":379,"image":380,"path":381,"readingTime":382,"recommend":62,"tags":387,"title":391,"type":75,"updated":392},[81],"2026-01-11 10:00:00","这篇文章是一篇实战经验分享，主要讲解了如何利用腾讯云的EdgeOne边缘安全加速平台，为网站字体等静态资源搭建一个自定义的、高性能的镜像加速服务。","\u002Fimage\u002FPostCover\u002FjsdmEdge.avif","\u002F2026\u002F01\u002Fjsdmedge",{"text":383,"minutes":384,"time":385,"words":386},"3 min read",2.72,163200,544,[388,389,390],"镜像","EdgeOne","jsdmirror","使用EdgeOne CDN搭建自用Jsd镜像","2026-01-11 20:49:00",{"categories":394,"date":395,"description":396,"image":397,"path":398,"readingTime":399,"recommend":62,"tags":404,"title":407,"type":75,"updated":408},[81],"2026-01-28 19:00:00","本文是一篇关于 Komari Monitor（一款服务器监控系统）的详细介绍与实用指南。文章以作者个人经验为引，对比了哪吒监控（V0\u002FV1版本）与 Komari 在各方面的差异，并逐步演示了如何部署、配置和使用 Komari。","\u002Fimage\u002FPostCover\u002FkomariMonitor.avif","\u002F2026\u002F01\u002Fkomarimonitor",{"text":400,"minutes":401,"time":402,"words":403},"7 min read",6.86,411600,1372,[405,406],"探针","监控","komari：全新的探针站点","2026-01-29 13:00:00",{"categories":410,"date":411,"description":348,"image":412,"path":413,"readingTime":414,"recommend":45,"tags":418,"title":419,"type":75,"updated":420},[52],"2026-01-01 10:00:00","\u002Fimage\u002FPostCover\u002FNewYear.avif","\u002F2026\u002F01\u002Fnewyear",{"text":383,"minutes":415,"time":416,"words":417},2.15,129000,430,[73,238,93],"踏入2026：目标新方向","2026-01-01 20:49:00",{"categories":422,"date":423,"description":424,"image":425,"path":426,"readingTime":427,"recommend":62,"tags":432,"title":433,"type":284,"updated":434},[52],"2026-01-05 10:00:00","该文章记录了项目中对于字体、图片以及构建产物等静态资源的优化与处理，并且表示自身对于图片的存放位置进行优化。","\u002Fimage\u002FPostCover\u002FsiteAssets.avif","\u002F2026\u002F01\u002Fsiteassets",{"text":428,"minutes":429,"time":430,"words":431},"2 min read",1.82,109200,364,[73,238,93],"站点资源优化","2026-01-07 20:49:00",{"categories":436,"date":438,"description":54,"image":439,"path":440,"readingTime":441,"recommend":62,"tags":445,"title":446,"type":75,"updated":447},[437],"日常随笔","2026-01-12 10:00:00","\u002Fimage\u002FPostCover\u002FvpsTalk.avif","\u002F2026\u002F01\u002Fvpstalk",{"text":248,"minutes":442,"time":443,"words":444},15.545,932700,3109,[73,238,93],"随笔：低价主机试水","2026-01-12 20:49:00",{"categories":449,"date":450,"description":451,"image":439,"path":452,"readingTime":453,"recommend":62,"tags":457,"title":458,"type":75,"updated":459},[437],"2026-01-30 10:00:00","该文章主要写了对于大容量硬盘主机的试水。在测试的过程中发现机器性能较高，且展示出机器的具体价格，并单独列出只有精简版未采用完整版测试。","\u002F2026\u002F01\u002Fvpstalk-2",{"text":367,"minutes":454,"time":455,"words":456},13.965,837900,2793,[73,238,93],"随笔：大容量主机测试","2026-01-30 20:49:00",{"categories":461,"date":462,"description":463,"image":464,"path":465,"readingTime":466,"recommend":68,"tags":471,"title":472,"type":75,"updated":473},[52],"2026-02-20 10:00:00","该文章展示多个以鸣潮为主题的档案组件，包含具体代码、属性表格对应、预览整体组件、写法展示四种类型，并在文章末尾附加更新报告。","\u002Fimage\u002FPostCover\u002FWutheringWavesPostWidget.avif","\u002F2026\u002F02\u002Fwutheringwavespostwidget",{"text":467,"minutes":468,"time":469,"words":470},"100 min read",99.23,5953800,19846,[73,238,93],"【鸣潮】档案文章组件","2026-02-26 10:00:00",{"categories":475,"date":476,"description":54,"image":477,"path":478,"readingTime":479,"recommend":62,"tags":483,"title":484,"type":75,"updated":485},[81],"2026-02-03 10:00:00","\u002Fimage\u002FPostCover\u002FfnosInstall.avif","\u002F2026\u002F02\u002Ffnosinstall",{"text":117,"minutes":480,"time":481,"words":482},8.91,534600,1782,[73,238,93],"给老MAC升级为飞牛OS","2026-02-05 20:49:00",{"categories":487,"date":476,"description":54,"image":488,"path":489,"readingTime":490,"recommend":62,"tags":494,"title":495,"type":75,"updated":485},[52],"\u002Fimage\u002FPostCover\u002FmacBookPerformancTest.avif","\u002F2026\u002F02\u002Fmacbookperformanctest",{"text":383,"minutes":491,"time":492,"words":493},2.47,148200,494,[73,238,93],"【精简】测试老MAC性能",{"categories":497,"date":498,"description":54,"image":499,"path":500,"readingTime":501,"recommend":62,"tags":505,"title":506,"type":75,"updated":507},[52],"2026-02-04 10:00:00","\u002Fimage\u002FPostCover\u002FmusicInstall.avif","\u002F2026\u002F02\u002Fmusicinstall",{"text":117,"minutes":502,"time":503,"words":504},8.19,491400,1638,[73,238,93],"【本地+云端】搭建道理鱼音乐","2026-02-06 20:49:00",{"categories":509,"date":510,"description":54,"image":511,"path":512,"readingTime":513,"recommend":517,"tags":518,"title":519,"type":75,"updated":520},[52],"2026-03-03 10:00:00","\u002Fimage\u002FPostCover\u002FfooterNuxtMeihua.avif","\u002F2026\u002F03\u002Ffooternuxtmeihua",{"text":131,"minutes":514,"time":515,"words":516},3.235,194100,647,3,[73,238,93],"页脚魔改(Nuxt版本)","2026-03-06 10:00:00",{"categories":522,"date":523,"description":54,"image":511,"path":524,"readingTime":525,"recommend":48,"tags":530,"title":531,"type":75,"updated":532},[52],"2026-03-21 14:00:00","\u002F2026\u002F03\u002Fsteamgamepage",{"text":526,"minutes":527,"time":528,"words":529},"18 min read",17.265,1035900,3453,[73,74],"游戏展示页面","2026-03-22 10:00:00",{"categories":534,"date":535,"description":54,"image":511,"path":536,"readingTime":537,"recommend":68,"tags":541,"title":542,"type":75,"updated":543},[52],"2026-04-11 14:00:00","\u002F2026\u002F04\u002Fessaynuxtpage",{"text":64,"minutes":538,"time":539,"words":540},5.93,355800,1186,[73,74],"说说页面（Nuxt版本）","2026-04-11 22:00:00",{"categories":545,"date":546,"description":54,"image":62,"path":547,"readingTime":548,"recommend":62,"tags":552,"title":553,"type":75,"updated":554},[81],"2026-04-13 14:00:00","\u002F2026\u002F04\u002Fnuxthotpage",{"text":117,"minutes":549,"time":550,"words":551},8.985,539100,1797,[73,74],"用Codex写一个热搜页面","2026-04-13 22:00:00",{"categories":556,"date":557,"description":54,"image":62,"path":558,"readingTime":559,"recommend":62,"tags":563,"title":564,"type":75,"updated":565},[52],"2026-04-21 14:00:00","\u002F2026\u002F04\u002Fnuxtserviceworker",{"text":337,"minutes":560,"time":561,"words":562},11.735,704100,2347,[73,74],"用元宝写一个ServiceWorker","2026-04-21 22:00:00",{"categories":567,"date":53,"description":54,"image":57,"path":61,"readingTime":568,"recommend":68,"tags":569,"title":5,"type":75,"updated":76},[52],{"text":64,"minutes":65,"time":66,"words":67},[73,74],{"categories":571,"date":573,"description":273,"image":574,"path":575,"readingTime":576,"recommend":62,"tags":580,"title":581,"type":284,"updated":582},[572],"自设记录","2025-12-29 10:00:00","https:\u002F\u002Fsourceimage.s3.bitiful.net\u002Fpost\u002Fimg\u002FannualSummary\u002Fcover.webp","\u002Fnovel\u002Fworld\u002Fharmworld",{"text":428,"minutes":577,"time":578,"words":579},1.31,78600,262,[281,282],"世界志：鸿蒙界","2025-12-29 20:49:00",{"categories":584,"date":573,"description":273,"image":574,"path":585,"readingTime":586,"recommend":62,"tags":590,"title":591,"type":284,"updated":582},[572],"\u002Fnovel\u002Fworld\u002Flmmortalgod",{"text":400,"minutes":587,"time":588,"words":589},6.295,377700,1259,[281,282],"世界志：仙神界",{"categories":593,"date":573,"description":273,"image":574,"path":594,"readingTime":595,"recommend":62,"tags":599,"title":600,"type":284,"updated":582},[572],"\u002Fnovel\u002Fworld\u002Fdh",{"text":428,"minutes":596,"time":597,"words":598},1.65,99000,330,[281,282],"世界志：大荒",[602,62],{"title":564,"path":558,"stem":603,"date":557,"type":75,"children":-1},"posts\u002F2026\u002F04\u002FnuxtServiceWorker",1786198438913]