[{"data":1,"prerenderedAt":1369},["ShallowReactive",2],{"site:layout":3,"site:splash":55,"posts:archives":70},{"id":4,"title":5,"avatar":6,"bio":7,"comments":8,"extension":13,"home":14,"intro":20,"meta":21,"murmurs":23,"name":25,"projects":26,"since":42,"social":43,"stem":53,"__hash__":54},"site\u002Fsite.json","KJSone的日常","https:\u002F\u002Fimg.kjsone.com\u002Fundefined20251118105306430.jpg?imageSlim","家养一只小泰迪",{"beaudarRepo":9,"beaudarTheme":10,"beaudarBranch":11,"beaudarOrigin":12},"DaiMu-210\u002Fnuxt-blog-cos-admin","github-light","main","https:\u002F\u002Fbeaudar.lipk.org","json",{"latestCount":15,"showStats":16,"pinnedSlugs":17,"featuredSlugs":18},10,true,[],[19],"2026-04-19-hello","鄙人什么也不会，就会写点日记",{"siteUrl":22},"https:\u002F\u002Fkjsone.com",{"visibleDays":24},0,"KJSone",[27,32,37],{"name":28,"url":29,"icon":30,"desc":31},"毕业设计","https:\u002F\u002Fbs.kjsone.com","👷‍♀️","一个简单的装修项目管理系统",{"name":33,"url":34,"icon":35,"desc":36},"固件羊","https:\u002F\u002Feasyhey.com\u002F","🐑","下一代固件烧录方案，让固件烧录变得简单",{"name":38,"url":39,"icon":40,"desc":41},"本富科技","","🔋","本富科技-V2小程序的前端开发","2025-10-08",[44,47,50],{"label":45,"url":46},"GitHub","https:\u002F\u002Fgithub.com\u002FDaiMu-210",{"label":48,"url":49},"BiliBili","https:\u002F\u002Fspace.bilibili.com\u002F440962725",{"label":51,"url":52},"Gmail","mailto:daimu2102655453@gmail.com","site","W0zTMaGFAhbCaNYODmRtrx3odFklkpqEVwtlLT9LrCM",{"id":4,"title":5,"avatar":6,"bio":7,"comments":56,"extension":13,"home":57,"intro":20,"meta":60,"murmurs":61,"name":25,"projects":62,"since":42,"social":66,"stem":53,"__hash__":54},{"beaudarRepo":9,"beaudarTheme":10,"beaudarBranch":11,"beaudarOrigin":12},{"latestCount":15,"showStats":16,"pinnedSlugs":58,"featuredSlugs":59},[],[19],{"siteUrl":22},{"visibleDays":24},[63,64,65],{"name":28,"url":29,"icon":30,"desc":31},{"name":33,"url":34,"icon":35,"desc":36},{"name":38,"url":39,"icon":40,"desc":41},[67,68,69],{"label":45,"url":46},{"label":48,"url":49},{"label":51,"url":52},[71,204,266,323],{"id":72,"title":73,"body":74,"category":193,"date":194,"description":195,"draft":196,"extension":197,"meta":198,"navigation":16,"path":199,"seo":200,"stem":201,"tags":202,"__hash__":203},"posts\u002Fposts\u002F2026-05-21-post.md","告别来回切App！我做了一个极简的多平台商品比价助手",{"type":75,"value":76,"toc":181},"minimark",[77,82,95,99,106,111,123,127,130,134,140,156,160,163,167],[78,79,81],"h2",{"id":80},"购物狂的烦恼算不清的性价比","购物狂的烦恼：算不清的性价比",[83,84,85,86,90,91,94],"p",{},"每次遇到需要添置大件或者复购消耗品的时候，我都会陷入一个极其消耗精力的循环：打开淘宝看看价格，切到京东比比物流，再打开拼多多看看百亿补贴。\n如果仅仅是比总价就算了，更让人头疼的是",[87,88,89],"strong",{},"规格的差异","。 比如买个露营天幕，A店卖 150元（3x4米），B店卖 200元（4x5米），C店卖 180元（黑胶款 3x5米）。 想要知道到底哪个最划算，还得自己掏出计算器，一个一个算“每平方米多少钱”。等算完一圈，早忘了第一个看的是哪个店了。\n“既然应用之间来回切换这么麻烦，算数又这么烧脑，为什么不把它们放在同一个页面上，让程序帮我把性价比最高的那个揪出来呢？”\n带着这个想法，",[87,92,93],{},"「商品比价助手」"," 诞生了。",[78,96,98],{"id":97},"它能做什么","它能做什么？",[83,100,101,102,105],{},"这并不是一个会自动去爬取各大电商数据的神奇黑客工具（毕竟各家防爬虫都很严），而是一个",[87,103,104],{},"属于你自己的、极简的购物决策工作台","。",[107,108,110],"h3",{"id":109},"_1-跨平台同台竞技自动计算最优选","1. 🧠 跨平台同台竞技，自动计算“最优选”",[83,112,113,114,118,119,122],{},"你只需要建立一个分类（比如“露营天幕”），设定好比较单位（比如 ",[115,116,117],"code",{},"㎡","）。把你在各个平台看中的商品价格和尺寸填进去，系统瞬间就会计算出单价，并为性价比最高的那一款打上高亮的 ",[87,120,121],{},"“性价比最高”"," 金色徽章。买哪个，一目了然。",[107,124,126],{"id":125},"_2-链接收纳一键跳转","2. 🔗 链接收纳，一键跳转",[83,128,129],{},"不用再把商品链接扔进文件传输助手里吃灰了。在添加商品时粘贴分享链接，商品名称就会变成可点击的直达传送门。比对完毕后，直接点击第一名的名字，立刻跳回对应的电商 App 下单。",[107,131,133],{"id":132},"_3-绝不妥协的-ui-体验","3. 🎨 绝不妥协的 UI 体验",[83,135,136,137,105],{},"作为一个实用工具，它绝不是满屏表格的简陋后台。我为它设计了类似 Apple 和高级 SaaS 产品的",[87,138,139],{},"极简现代风",[141,142,143,147,150],"ul",{},[144,145,146],"li",{},"大量留白与细腻的卡片阴影。",[144,148,149],{},"丝滑的交互动画（使用 Framer Motion 驱动）。",[144,151,152,155],{},[87,153,154],{},"完美适配手机端","：不管你是在电脑前认真做攻略，还是在地铁上用手机随手记下价格，底部抽屉式的弹窗和响应式网格都能给你丝滑的操作体验。",[107,157,159],{"id":158},"_4-纯本地运行数据绝对隐私","4. 🔒 纯本地运行，数据绝对隐私",[83,161,162],{},"它不需要你注册账号，不需要你绑定微信。所有数据都通过 Zustand 状态管理安全地保存在你自己的浏览器 LocalStorage 里（而且做了专门的兼容性优化，Safari 下也能完美运行）。随开随用，轻量无负担。",[78,164,166],{"id":165},"写在最后给开发者的彩蛋","写在最后（给开发者的彩蛋）",[83,168,169,170,173,174,177,178],{},"这个项目的诞生过程非常迅速。前端栈使用了 ",[87,171,172],{},"React 18 + TypeScript + Vite"," 的黄金组合，样式部分则是用 ",[87,175,176],{},"Tailwind CSS"," 徒手捏出了这套极简风格。没有沉重的后端包袱，把全部的精力都倾注在了业务逻辑（多维度单价排序）和用户体验（UI 与微交互）上。\n如果你也经常为了买一样东西在三个 App 里来回切换，或者为了算清一包抽纸到底几毛钱一张而感到心累，不妨试试这种“把选项都列出来，让代码帮你做决定”的方法。\n毕竟，",[87,179,180],{},"省下的不仅是差价，更是我们宝贵的注意力。",{"title":39,"searchDepth":182,"depth":182,"links":183},3,[184,186,192],{"id":80,"depth":185,"text":81},2,{"id":97,"depth":185,"text":98,"children":187},[188,189,190,191],{"id":109,"depth":182,"text":110},{"id":125,"depth":182,"text":126},{"id":132,"depth":182,"text":133},{"id":158,"depth":182,"text":159},{"id":165,"depth":185,"text":166},"随笔","2026-05-21","想要买一件商品，还要精打细算，需要查看同一个商品在不同的平台上是多少钱，应用之间来回切换太麻烦了，倒不如直接放在同一个页面上自动筛选出性价比最高的那个，所以这个网站就这么出现了",false,"md",{},"\u002Fposts\u002F2026-05-21-post",{"title":73,"description":195},"posts\u002F2026-05-21-post",[],"ZAkAOmTW7D3tLXo6I_Ffvl6LUWiLv62mXZ-bItH5EbE",{"id":205,"title":206,"body":207,"category":193,"date":257,"description":258,"draft":196,"extension":197,"meta":259,"navigation":16,"path":260,"seo":261,"stem":262,"tags":263,"__hash__":265},"posts\u002Fposts\u002Fmy-new-blog-system.md","从 Hugo 到 Nuxt：我把“写博客”这件事做成了一个更顺手的流程",{"type":75,"value":208,"toc":255},[209,212,215,218,221,224,227,242,249,252],[83,210,211],{},"我一开始用 Hugo 搭博客，是因为它够轻、够快、够“工程化”。但写得久了，我越来越确定：对我来说，博客的核心不是“能跑起来”，而是“写起来舒服”。",[83,213,214],{},"当时最折磨我的有三件事。",[83,216,217],{},"第一，写文章不在同一个界面里。文章是 Markdown 文件，预览是另一个地方，发布又是另一个步骤。我每次写一段都要在多个窗口之间来回切换，注意力被工具打断。",[83,219,220],{},"第二，每次想看效果都要启动服务。哪怕只是想确认一下标题层级、代码块样式、目录是否正确，也得先把服务跑起来，再打开页面。写作本来是一件轻松的事，却被流程变成了“每次都要做启动仪式”。",[83,222,223],{},"第三，站点配置不直观。改导航、改站点信息、改友链，往往要去翻配置文件或 JSON，改完还要再验证一遍有没有写错字段。它当然可控，但并不友好。",[83,225,226],{},"于是我给自己定了一个很明确的目标：把“写、看、改配置”都尽量放到一个地方完成，同时不牺牲 Hugo 那种“最终还是静态站、容易部署”的优点。",[83,228,229,230,233,234,237,238,241],{},"这个项目最终变成了一个 Nuxt 博客：文章仍然是 ",[115,231,232],{},"content\u002Fposts\u002F**\u002F*.md"," 的文件形式，但我额外做了一个只在本地可用的 ",[115,235,236],{},"\u002Fadmin"," 管理端，用所见即所得编辑器来写正文，并在编辑时随时跳到前台 ",[115,239,240],{},"\u002Fposts\u002F\u003Cslug>"," 预览效果。站点设置、友链这些内容，也做成了可视化表单页面，改完即保存，省掉了频繁去碰配置文件的心智负担。",[83,243,244,245,248],{},"发布这块我也尽量保持“静态站”的简单：需要上线时导出静态产物到 ",[115,246,247],{},"dist\u002F","，再同步到对象存储（COS）就行。前台页面不依赖服务端运行时，管理端只用于本地编辑，所以线上部署仍然轻量。",[83,250,251],{},"后来我又加了一个更像“写作软件”的形态：Electron 桌面模式。这样打开应用就能写、能预览、能改配置，文章和配置落在本地数据目录里，备份也更清晰。对我来说，这比“开一个终端、敲命令、再开浏览器”的体验更接近写作本身。",[83,253,254],{},"做完之后，我最大的感受是：技术选型当然重要，但更重要的是把自己的真实痛点拆成具体的需求，然后用一个可持续维护的方式把流程做顺。下一步我会继续围绕“写作不中断”去优化细节，比如更快的预览、更稳的发布日志、以及更一致的主题样式。",{"title":39,"searchDepth":182,"depth":182,"links":256},[],"2026-04-26","以前用 Hugo 搭博客，我最不喜欢的不是主题难改，而是写作流程不顺：编辑、预览、配置都很割裂。于是我用 Nuxt 做了一个“本地可视化管理 + 静态部署”的博客项目，把写作体验重新打磨了一遍。",{},"\u002Fposts\u002Fmy-new-blog-system",{"title":206,"description":258},"posts\u002Fmy-new-blog-system",[264],"nuxt","VIr-8lwQJ2_4ghCtHo4A73kHHAD9m_LatKcDaWlxnYk",{"id":267,"title":268,"body":269,"category":314,"date":315,"description":316,"draft":196,"extension":197,"meta":317,"navigation":16,"path":318,"seo":319,"stem":320,"tags":321,"__hash__":322},"posts\u002Fposts\u002Fdaily-about-phone-protective-film.md","日记-关于手机保护膜",{"type":75,"value":270,"toc":309},[271,281,284,292,295,302],[78,272,274],{"id":273},"什么我的超声波指纹居然无法识别了",[275,276,280],"a",{"href":277,"rel":278},"https:\u002F\u002Fkjsone.com\u002Fposts\u002Fdaily-about-phone-protective-film#%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E8%B6%85%E5%A3%B0%E6%B3%A2%E6%8C%87%E7%BA%B9%E5%B1%85%E7%84%B6%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E4%BA%86",[279],"nofollow","什么？我的超声波指纹居然无法识别了！",[83,282,283],{},"昨天我在 PDD 买的钢化膜到了，满怀激动的贴上后我的超声波指纹居然无法识别了！我就找客服理论，客服找我要证据，我就让我的舍友帮我在一旁录制视频，将原来的指纹删掉再录入……我的指纹就连录入都不行了！ 视频发过去后，客服回应我说要不赔我两张水凝膜吧。我怎么可能接受，鄙人平时手机不是磕了就是碰了，水凝膜哪里能保护我这可爱的屏幕，再说了我本来就是要买钢化膜，你给我水凝膜算怎么回事，我直接一个不接受。 接下来客服就像一个机器人一样，就想让我接受两个水凝膜的补偿说运费不用我出。我依旧强硬的拒绝，这个时候 PDD 官方检测到了，开始介入，我直接就是一个申请全额退款，不惯着这商家，小米15本来全系都是超声波指纹，你居然不适配还拿出来买，定价还 16 块多。 没多久退款就下来了，这点还是要称赞 PDD 给力的，哈哈哈哈。",[78,285,287],{"id":286},"闪魔我爱你",[275,288,291],{"href":289,"rel":290},"https:\u002F\u002Fkjsone.com\u002Fposts\u002Fdaily-about-phone-protective-film#%E9%97%AA%E9%AD%94%E6%88%91%E7%88%B1%E4%BD%A0",[279],"闪魔我爱你！",[83,293,294],{},"收到退款后，我立马在京东下单了闪魔的钢化膜 20 多两张膜，而且明日达，要知道我在 PDD 下单的那个商家可是给我发货了好几天的。 今天拿到膜后，我立马连教程都不看就贴上了，还是不得不佩服我的手艺了，贴的非常完美哈哈哈。 紧接着，我立马测试我的指纹识别——好使！ 之后我就将我右手的拇指录入进去了依旧好使，称赞闪魔！我爱闪魔！",[78,296,298],{"id":297},"吐槽",[275,299,297],{"href":300,"rel":301},"https:\u002F\u002Fkjsone.com\u002Fposts\u002Fdaily-about-phone-protective-film#%E5%90%90%E6%A7%BD",[279],[83,303,304,305,308],{},"咱就说了，人家闪魔 20 多两张膜，算起来也就 10 块多一点一张，你 PDD 的那个商家 16 块多一张，还不如人家闪魔的，害…… 所以我在此呼吁家人们，买东西之前一定要把眼睛擦亮了，我看 PDD 商品名前标注一个 ",[115,306,307],{},"品牌"," 所以才放心买的，没想到东西不行啊。",{"title":39,"searchDepth":182,"depth":182,"links":310},[311,312,313],{"id":273,"depth":185,"text":280},{"id":286,"depth":185,"text":291},{"id":297,"depth":185,"text":297},"日常","2025-10-14","果然三无厂家没好货啊，在 PDD 买了一个 16 块多的手机保护膜x1，使用后我的超声波指纹居然无法识别了，直接就是一个全额退款（不退货）！",{},"\u002Fposts\u002Fdaily-about-phone-protective-film",{"title":268,"description":316},"posts\u002Fdaily-about-phone-protective-film",[],"2I_fqxjdfd3Y5ciZJmIydT6caj0FalD0-TW3cnCeWnM",{"id":324,"title":325,"body":326,"category":1361,"date":42,"description":1362,"draft":196,"extension":197,"meta":1363,"navigation":16,"path":1364,"seo":1365,"stem":1366,"tags":1367,"__hash__":1368},"posts\u002Fposts\u002F2026-04-19-hello.md","Hugo初始化",{"type":75,"value":327,"toc":1342},[328,335,339,342,346,373,397,400,436,439,471,479,482,557,577,580,586,589,592,621,625,648,674,677,691,736,739,742,818,821,853,932,935,946,990,993,1067,1070,1073,1149,1159,1163,1173,1190,1193,1196,1199,1279,1329,1332,1335,1338],[83,329,330,331,334],{},"第一次使用 Hugo 来搭建自己的博客，没有想到的是过程竟然意外的顺利，只需要 ",[115,332,333],{},"下载->安装->配置->发布"," 就能搭建出来自己的博客。\n在安装和配置 Hugo 之前，先来了解 Hugo 是什么，可以用来做什么吧。",[78,336,338],{"id":337},"什么是-hugo","什么是 Hugo?",[83,340,341],{},"Hugo 是一款用 Go 语言开发的静态网站生成器，以其快速构建和零依赖而著称。它通过将 Markdown 等格式的内容与模板结合，生成纯静态的 HTML 文件，适用于博客、文档站、作品集等场景。Hugo 结合了速度、灵活性和易用性，是现代静态网站开发的理想选择。",[78,343,345],{"id":344},"安装-hugo","安装 Hugo",[83,347,348,349,354,355,360,361,366,367,372],{},"在安装 Hugo 之前需要确保你可以正常访问 Github，如果不能访问 Github 我推荐使用这个工具: ",[275,350,353],{"href":351,"rel":352},"https:\u002F\u002Fsteampp.net\u002F",[279],"Steam++","，开启工具后点击这里：",[275,356,359],{"href":357,"rel":358},"https:\u002F\u002Fgithub.com\u002F",[279],"访问 Github","，来测试是否能正常访问 Github。\n这里我不会介绍从 Hugo Github 主页中下载、安装和配置 Hugo 的方式，我推荐使用 ",[275,362,365],{"href":363,"rel":364},"https:\u002F\u002Fscoop.sh\u002F",[279],"Scoop"," 这个工具来安装 Hugo。这里我会配上 ",[275,368,371],{"href":369,"rel":370},"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F1931641798855458999",[279],"Scoop 安装教程","。\n安装完 Scoop 后，我们只需要在 Windows 终端中输入一行命令:",[374,375,379],"pre",{"className":376,"code":377,"language":378,"meta":39,"style":39},"language-bash shiki shiki-themes github-light github-dark","scoop install hugo\n","bash",[115,380,381],{"__ignoreMap":39},[382,383,386,390,394],"span",{"class":384,"line":385},"line",1,[382,387,389],{"class":388},"sScJk","scoop",[382,391,393],{"class":392},"sZZnC"," install",[382,395,396],{"class":392}," hugo\n",[83,398,399],{},"然后等待安装完成就好啦。\n安装成功后，在自己的工作目录中打开终端，来新建一个 Hugo 网站。输入这个命令：",[374,401,403],{"className":376,"code":402,"language":378,"meta":39,"style":39},"# sitename 为网站名(文件夹名)，推荐使用英文名如 Blog\nhugo new site \u003Csitename>\n",[115,404,405,411],{"__ignoreMap":39},[382,406,407],{"class":384,"line":385},[382,408,410],{"class":409},"sJ8bj","# sitename 为网站名(文件夹名)，推荐使用英文名如 Blog\n",[382,412,413,416,419,422,426,429,433],{"class":384,"line":185},[382,414,415],{"class":388},"hugo",[382,417,418],{"class":392}," new",[382,420,421],{"class":392}," site",[382,423,425],{"class":424},"szBVR"," \u003C",[382,427,428],{"class":392},"sitenam",[382,430,432],{"class":431},"sVt8B","e",[382,434,435],{"class":424},">\n",[83,437,438],{},"之后我们在终端输入，下面这行命令，在资源管理器中打开我们新建的网站：",[374,440,442],{"className":376,"code":441,"language":378,"meta":39,"style":39},"# \u003Csitename> 为你上面创建网站所使用的名称\ncd \u003Csitename>\nexplorer .\n",[115,443,444,449,463],{"__ignoreMap":39},[382,445,446],{"class":384,"line":385},[382,447,448],{"class":409},"# \u003Csitename> 为你上面创建网站所使用的名称\n",[382,450,451,455,457,459,461],{"class":384,"line":185},[382,452,454],{"class":453},"sj4cs","cd",[382,456,425],{"class":424},[382,458,428],{"class":392},[382,460,432],{"class":431},[382,462,435],{"class":424},[382,464,465,468],{"class":384,"line":182},[382,466,467],{"class":388},"explorer",[382,469,470],{"class":392}," .\n",[83,472,473,474,105],{},"在资源管理器中打开后你就能看到 Hugo 新建网站的结构了，点击这里跳转到 ",[275,475,478],{"href":476,"rel":477},"https:\u002F\u002Fhugo.opendocs.io\u002Fzh-cn\u002Fgetting-started\u002Fdirectory-structure\u002F",[279],"Hugo 目录说明",[78,480,481],{"id":481},"下载主题",[83,483,484,485,490,491,496,497,501,505,506,509,510,518,519,522,523,526,527,530,531,534,535,538,539,541,542,545,546,548,549,552,553,556],{},"拥有一个好看的主题可以让访客留下一个好的观感和阅读体验，所以我们需要寻找一个自己认可的主题来配置到自己的网站上。点击这里跳转到 ",[275,486,489],{"href":487,"rel":488},"https:\u002F\u002Fthemes.gohugo.io\u002F",[279],"Hugo Themes","。来寻找自己喜欢的主题。\n本文中我将使用 Stack 主题作为演示\n",[492,493],"img",{"alt":494,"src":495},"Stack 主题","https:\u002F\u002Fimg.kjsone.com\u002Fundefined20251119084515436.png?imageSlim","\n点击 Download 前往 Github 下载主题。\n",[492,498],{"alt":499,"src":500},"Stack Github Home","https:\u002F\u002Fimg.kjsone.com\u002Fundefined20251119084515437.png?imageSlim",[492,502],{"alt":503,"src":504},"Stack Github Releases","https:\u002F\u002Fimg.kjsone.com\u002Fundefined20251119084515433.png?imageSlim","\n将下载好的主题解压到自己的网站目录下的 ",[115,507,508],{},"themes"," 目录 ",[511,512,513,514,517],"em",{},"(如果你仔细看过 ",[275,515,478],{"href":476,"rel":516},[279],"的话应该知道我在说什么)"," 下并解压，接着重命名为 ",[115,520,521],{},"home-theme-stack","，再删掉压缩包。\n进入到刚刚解压的主题目录中，找到 ",[115,524,525],{},"exampleSite"," 目录并进入，将里面的 ",[115,528,529],{},"hugo.yaml"," 文件和 ",[115,532,533],{},"content"," 目录",[87,536,537],{},"复制","到你网站的主目录中去。复制完后你会在主目录中看到有两个 ",[115,540,415],{}," 名称的文件，你需要将 ",[115,543,544],{},"hugo.toml"," 删除，保留 ",[115,547,529],{}," 也就是我们刚刚复制过来的配置文件。\n不过这个过程中需要注意的是，因为我们国内网络的问题，无法访问 Youtube 网站，所以需要将他的视频引用示例文件夹给删掉。也就是将 ",[115,550,551],{},"content\u002Fpost\u002Frich-content"," 目录删除。\n接着保存，输入下面的命令，打开浏览器，地址栏输入 ",[115,554,555],{},"http:\u002F\u002Flocalhost:1313\u002F"," 就能看到你创建的网站啦。",[374,558,560],{"className":376,"code":559,"language":378,"meta":39,"style":39},"# -D 的作用是显示草稿文章(未发布文章)\nhugo server -D\n",[115,561,562,567],{"__ignoreMap":39},[382,563,564],{"class":384,"line":385},[382,565,566],{"class":409},"# -D 的作用是显示草稿文章(未发布文章)\n",[382,568,569,571,574],{"class":384,"line":185},[382,570,415],{"class":388},[382,572,573],{"class":392}," server",[382,575,576],{"class":453}," -D\n",[78,578,579],{"id":579},"配置主题",[83,581,582,583,585],{},"主题的配置基本上在 ",[115,584,529],{}," 中就能完成，比如头像的配置，国际化的配置，个人信息的配置，页面结构的配置等。我们先从最基本的网站信息配置开始。",[107,587,588],{"id":588},"网站信息的配置",[83,590,591],{},"网站信息主要包含以下几项：",[141,593,594,599,610,613,616],{},[144,595,596,597,105],{},"基本链接(baseurl)：这个也就是你网站的域名了，比如我的就是 ",[115,598,22],{},[144,600,601,602,605,606,609],{},"网站语言代码(languageCode)：他默认使用的是 ",[115,603,604],{},"en-us","，也就是英文美国，我们中国的语言代码是 ",[115,607,608],{},"zh-cn"," (简体中文)。",[144,611,612],{},"主题(theme)：这个配置不用改（如果你完全按照我之前的步骤来的话）。",[144,614,615],{},"版权(copyright)：一般这里都写你的名字（网名，比如我就是KJSone）。",[144,617,618,619,105],{},"默认文章内容语言(DefaultContentLanguage)：一般情况下我们都使用中文，所以这里使用 ",[115,620,608],{},[622,623,624],"h4",{"id":624},"图标",[83,626,627,628,631,632,635,636,639,640,643,644,647],{},"网站图标的配置在 ",[115,629,630],{},"params"," 下的 ",[115,633,634],{},"favicon"," 中，需要将 ",[115,637,638],{},"ico"," 文件放在 ",[115,641,642],{},"static"," 目录下，然后使用 ",[115,645,646],{},"\u002F\u003Cfilename>"," 的方式进行引用。我的配置如下：",[374,649,653],{"className":650,"code":651,"language":652,"meta":39,"style":39},"language-yaml shiki shiki-themes github-light github-dark","params:\n    favicon: \u002Ffavicon.ico\n","yaml",[115,654,655,663],{"__ignoreMap":39},[382,656,657,660],{"class":384,"line":385},[382,658,630],{"class":659},"s9eBZ",[382,661,662],{"class":431},":\n",[382,664,665,668,671],{"class":384,"line":185},[382,666,667],{"class":659},"    favicon",[382,669,670],{"class":431},": ",[382,672,673],{"class":392},"\u002Ffavicon.ico\n",[622,675,676],{"id":676},"页脚",[83,678,679,680,683,684,687,688,690],{},"页脚可配置的选项有",[87,681,682],{},"网站创建年份","以及",[87,685,686],{},"自定义文本","，同样在 ",[115,689,630],{}," 下进行配置",[374,692,694],{"className":650,"code":693,"language":652,"meta":39,"style":39},"params:\n    ...其他配置\n    footer:\n        since: 2025\n        customText: \"自定义文本\"\n",[115,695,696,702,707,714,725],{"__ignoreMap":39},[382,697,698,700],{"class":384,"line":385},[382,699,630],{"class":659},[382,701,662],{"class":431},[382,703,704],{"class":384,"line":185},[382,705,706],{"class":392},"    ...其他配置\n",[382,708,709,712],{"class":384,"line":182},[382,710,711],{"class":659},"    footer",[382,713,662],{"class":431},[382,715,717,720,722],{"class":384,"line":716},4,[382,718,719],{"class":659},"        since",[382,721,670],{"class":431},[382,723,724],{"class":453},"2025\n",[382,726,728,731,733],{"class":384,"line":727},5,[382,729,730],{"class":659},"        customText",[382,732,670],{"class":431},[382,734,735],{"class":392},"\"自定义文本\"\n",[107,737,738],{"id":738},"页面语言配置",[83,740,741],{},"页面语言我仅保留了中文，这样多语言选项组件就会从页面上消失，我的配置如下：",[374,743,745],{"className":650,"code":744,"language":652,"meta":39,"style":39},"languages:\n    zh-cn:\n        languageName: 中文\n        title: KJSone\n        weight: 2\n        params:\n            sidebar:\n                subtitle: 欢迎来到我的博客，希望你能在这里有所收获！\n",[115,746,747,754,761,771,781,791,799,807],{"__ignoreMap":39},[382,748,749,752],{"class":384,"line":385},[382,750,751],{"class":659},"languages",[382,753,662],{"class":431},[382,755,756,759],{"class":384,"line":185},[382,757,758],{"class":659},"    zh-cn",[382,760,662],{"class":431},[382,762,763,766,768],{"class":384,"line":182},[382,764,765],{"class":659},"        languageName",[382,767,670],{"class":431},[382,769,770],{"class":392},"中文\n",[382,772,773,776,778],{"class":384,"line":716},[382,774,775],{"class":659},"        title",[382,777,670],{"class":431},[382,779,780],{"class":392},"KJSone\n",[382,782,783,786,788],{"class":384,"line":727},[382,784,785],{"class":659},"        weight",[382,787,670],{"class":431},[382,789,790],{"class":453},"2\n",[382,792,794,797],{"class":384,"line":793},6,[382,795,796],{"class":659},"        params",[382,798,662],{"class":431},[382,800,802,805],{"class":384,"line":801},7,[382,803,804],{"class":659},"            sidebar",[382,806,662],{"class":431},[382,808,810,813,815],{"class":384,"line":809},8,[382,811,812],{"class":659},"                subtitle",[382,814,670],{"class":431},[382,816,817],{"class":392},"欢迎来到我的博客，希望你能在这里有所收获！\n",[107,819,820],{"id":820},"侧边栏配置",[83,822,823,824,826,827,830,831,834,835,838,839,842,843,846,847,850,851,105],{},"侧边栏同样在 ",[115,825,630],{}," 下，",[115,828,829],{},"emoji"," 就是头像右下角的表情，",[115,832,833],{},"subtitle"," 就是你名字下面的简介，",[115,836,837],{},"avatar"," 是用于设置你的头像。\n这里需要重点讲一下的是头像所要存放的位置，应该在主目录下 ",[115,840,841],{},"assets\u002Fimg"," 中，如果你直接放在 ",[115,844,845],{},"assets"," 目录中的话，可以将 ",[115,848,849],{},"src"," 属性的值改为 ",[115,852,646],{},[374,854,856],{"className":650,"code":855,"language":652,"meta":39,"style":39},"params:\n    ...其他配置\n    sidebar:\n        emoji: 😜\n        subtitle: 欢迎来到我的博客,希望你能在这里有所收获!\n        avatar:\n            enabled: true\n            local: true\n            src: img\u002Favatar.png\n",[115,857,858,864,868,875,885,895,902,912,921],{"__ignoreMap":39},[382,859,860,862],{"class":384,"line":385},[382,861,630],{"class":659},[382,863,662],{"class":431},[382,865,866],{"class":384,"line":185},[382,867,706],{"class":392},[382,869,870,873],{"class":384,"line":182},[382,871,872],{"class":659},"    sidebar",[382,874,662],{"class":431},[382,876,877,880,882],{"class":384,"line":716},[382,878,879],{"class":659},"        emoji",[382,881,670],{"class":431},[382,883,884],{"class":392},"😜\n",[382,886,887,890,892],{"class":384,"line":727},[382,888,889],{"class":659},"        subtitle",[382,891,670],{"class":431},[382,893,894],{"class":392},"欢迎来到我的博客,希望你能在这里有所收获!\n",[382,896,897,900],{"class":384,"line":793},[382,898,899],{"class":659},"        avatar",[382,901,662],{"class":431},[382,903,904,907,909],{"class":384,"line":801},[382,905,906],{"class":659},"            enabled",[382,908,670],{"class":431},[382,910,911],{"class":453},"true\n",[382,913,914,917,919],{"class":384,"line":809},[382,915,916],{"class":659},"            local",[382,918,670],{"class":431},[382,920,911],{"class":453},[382,922,924,927,929],{"class":384,"line":923},9,[382,925,926],{"class":659},"            src",[382,928,670],{"class":431},[382,930,931],{"class":392},"img\u002Favatar.png\n",[107,933,934],{"id":934},"文章配置",[83,936,937,938,941,942,945],{},"文章的配置有，需要说一下的是 ",[115,939,940],{},"boolean"," 是布尔类型，它的值有 ",[115,943,944],{},"true | false","，分别对应“是”|“否”，也就是功能“开启”|“关闭”的意思:",[141,947,948,958,964,970],{},[144,949,950,953,954,957],{},[115,951,952],{},"math","(boolean)：是否支持数学公式，也就是 ",[87,955,956],{},"LaTeX"," 语法。",[144,959,960,963],{},[115,961,962],{},"toc","(boolean): 是否开启目录。",[144,965,966,969],{},[115,967,968],{},"readingTime","(boolean)：是否开启阅读时间，它会根据文章字数来估算大概的计算一篇文章阅读所需要的时间。",[144,971,972,975,976],{},[115,973,974],{},"license","：版权\n",[141,977,978,984],{},[144,979,980,983],{},[115,981,982],{},"enabled","(boolean)：是否开启版权",[144,985,986,989],{},[115,987,988],{},"default","(string)：版权协议，默认是“Licensed under CC BY-NC-SA 4.0”，感兴趣的可以查一下，大概的意思是你写的文章可以被复制、转载，但是不可用于商业用途盈利。",[83,991,992],{},"我的配置如下：",[374,994,996],{"className":650,"code":995,"language":652,"meta":39,"style":39},"params:\n    ...其他配置\n    article:\n        math: true\n        toc: true\n        readingTime: true\n        license:\n            enabled: true\n            default: Licensed under CC BY-NC-SA 4.0\n",[115,997,998,1004,1008,1015,1024,1033,1042,1049,1057],{"__ignoreMap":39},[382,999,1000,1002],{"class":384,"line":385},[382,1001,630],{"class":659},[382,1003,662],{"class":431},[382,1005,1006],{"class":384,"line":185},[382,1007,706],{"class":392},[382,1009,1010,1013],{"class":384,"line":182},[382,1011,1012],{"class":659},"    article",[382,1014,662],{"class":431},[382,1016,1017,1020,1022],{"class":384,"line":716},[382,1018,1019],{"class":659},"        math",[382,1021,670],{"class":431},[382,1023,911],{"class":453},[382,1025,1026,1029,1031],{"class":384,"line":727},[382,1027,1028],{"class":659},"        toc",[382,1030,670],{"class":431},[382,1032,911],{"class":453},[382,1034,1035,1038,1040],{"class":384,"line":793},[382,1036,1037],{"class":659},"        readingTime",[382,1039,670],{"class":431},[382,1041,911],{"class":453},[382,1043,1044,1047],{"class":384,"line":801},[382,1045,1046],{"class":659},"        license",[382,1048,662],{"class":431},[382,1050,1051,1053,1055],{"class":384,"line":809},[382,1052,906],{"class":659},[382,1054,670],{"class":431},[382,1056,911],{"class":453},[382,1058,1059,1062,1064],{"class":384,"line":923},[382,1060,1061],{"class":659},"            default",[382,1063,670],{"class":431},[382,1065,1066],{"class":392},"Licensed under CC BY-NC-SA 4.0\n",[107,1068,1069],{"id":1069},"评论配置",[83,1071,1072],{},"评论配置需要将你的项目发布到 Github 上去，并且仓库的权限需要更改为公开，至于为什么需要发布到 Github 因为我使用的是 utterances，它是一款免费的评论组件，其实它是利用了 Github 的 issue 功能，他会为每一篇文章开启一个独立的 issue。\n我的配置如下：",[374,1074,1076],{"className":650,"code":1075,"language":652,"meta":39,"style":39},"params:\n    comments:\n        enabled: true\n        provider: utterances\n        \n        utterances:\n            repo: \"DaiMu-210\u002Fkjsone-blog\"\n            issueTerm: pathname\n            label:\n",[115,1077,1078,1084,1091,1100,1110,1115,1122,1132,1142],{"__ignoreMap":39},[382,1079,1080,1082],{"class":384,"line":385},[382,1081,630],{"class":659},[382,1083,662],{"class":431},[382,1085,1086,1089],{"class":384,"line":185},[382,1087,1088],{"class":659},"    comments",[382,1090,662],{"class":431},[382,1092,1093,1096,1098],{"class":384,"line":182},[382,1094,1095],{"class":659},"        enabled",[382,1097,670],{"class":431},[382,1099,911],{"class":453},[382,1101,1102,1105,1107],{"class":384,"line":716},[382,1103,1104],{"class":659},"        provider",[382,1106,670],{"class":431},[382,1108,1109],{"class":392},"utterances\n",[382,1111,1112],{"class":384,"line":727},[382,1113,1114],{"class":431},"        \n",[382,1116,1117,1120],{"class":384,"line":793},[382,1118,1119],{"class":659},"        utterances",[382,1121,662],{"class":431},[382,1123,1124,1127,1129],{"class":384,"line":801},[382,1125,1126],{"class":659},"            repo",[382,1128,670],{"class":431},[382,1130,1131],{"class":392},"\"DaiMu-210\u002Fkjsone-blog\"\n",[382,1133,1134,1137,1139],{"class":384,"line":809},[382,1135,1136],{"class":659},"            issueTerm",[382,1138,670],{"class":431},[382,1140,1141],{"class":392},"pathname\n",[382,1143,1144,1147],{"class":384,"line":923},[382,1145,1146],{"class":659},"            label",[382,1148,662],{"class":431},[83,1150,1151,1152,850,1155,1158],{},"这里需要注意的是，Stack 主题默认使用的是 disqus，我们需要将 ",[115,1153,1154],{},"provider",[115,1156,1157],{},"utterances","。\nutterances 中 repo 中需要填写你的用户名和仓库名。其他属性不用改。Label 的作用就给你的文章的评论(issue)添加一个标签。",[78,1160,1162],{"id":1161},"stack-主题发布文章要求","Stack 主题发布文章要求",[83,1164,1165,1166,1169,1170,1172],{},"使用Stack发布文章需要注意的是一篇文章就是一个文件夹，并且 Markdown 文件需要命名为 ",[115,1167,1168],{},"index.md","，文章中使用的视频或图片等资源需要放在此文件夹下，引用方式为 ",[115,1171,646],{},"。\n例子，比如我现在需要创建一篇文章叫“MyFirstBlog”，首先我们需要先输入下面这条命令来创建一篇文章：",[374,1174,1176],{"className":376,"code":1175,"language":378,"meta":39,"style":39},"hugo new content post\u002FMyFirstBlog\u002Findex.md\n",[115,1177,1178],{"__ignoreMap":39},[382,1179,1180,1182,1184,1187],{"class":384,"line":385},[382,1181,415],{"class":388},[382,1183,418],{"class":392},[382,1185,1186],{"class":392}," content",[382,1188,1189],{"class":392}," post\u002FMyFirstBlog\u002Findex.md\n",[83,1191,1192],{},"之后我们就可以撰写文章中的内容了。",[107,1194,1195],{"id":1195},"文章头信息",[83,1197,1198],{},"目前我已知的可设置的头信息如下：",[374,1200,1204],{"className":1201,"code":1202,"language":1203,"meta":39,"style":39},"language-markdown shiki shiki-themes github-light github-dark","---\ntitle: \ndescription: \ndate: \nimage: \nmath: \nlicense: \nhidden: \ncomments: \ndraft: \ntags:\nkeywords:\nreadingTime:\n---\n","markdown",[115,1205,1206,1211,1216,1221,1226,1231,1236,1241,1246,1251,1256,1262,1268,1274],{"__ignoreMap":39},[382,1207,1208],{"class":384,"line":385},[382,1209,1210],{},"---\n",[382,1212,1213],{"class":384,"line":185},[382,1214,1215],{},"title: \n",[382,1217,1218],{"class":384,"line":182},[382,1219,1220],{},"description: \n",[382,1222,1223],{"class":384,"line":716},[382,1224,1225],{},"date: \n",[382,1227,1228],{"class":384,"line":727},[382,1229,1230],{},"image: \n",[382,1232,1233],{"class":384,"line":793},[382,1234,1235],{},"math: \n",[382,1237,1238],{"class":384,"line":801},[382,1239,1240],{},"license: \n",[382,1242,1243],{"class":384,"line":809},[382,1244,1245],{},"hidden: \n",[382,1247,1248],{"class":384,"line":923},[382,1249,1250],{},"comments: \n",[382,1252,1253],{"class":384,"line":15},[382,1254,1255],{},"draft: \n",[382,1257,1259],{"class":384,"line":1258},11,[382,1260,1261],{},"tags:\n",[382,1263,1265],{"class":384,"line":1264},12,[382,1266,1267],{},"keywords:\n",[382,1269,1271],{"class":384,"line":1270},13,[382,1272,1273],{},"readingTime:\n",[382,1275,1277],{"class":384,"line":1276},14,[382,1278,1210],{},[141,1280,1281,1284,1287,1290,1296,1299,1302,1305,1308,1311,1320,1326],{},[144,1282,1283],{},"title: 文章标题",[144,1285,1286],{},"description：文章摘要",[144,1288,1289],{},"date：创建时间（这个是自动生成的，不需要我们改）",[144,1291,1292,1293],{},"image: 文章的头图，如果头图与文章同目录直接点击文章名即可，比如我的这篇文章是这样的：",[115,1294,1295],{},"image: hugo_logo.png",[144,1297,1298],{},"math：是否开启数学公式",[144,1300,1301],{},"license：版权协议，不写的话它会使用配置文件中默认的那个，上面有提到过忘了就翻上去看看。",[144,1303,1304],{},"hidden(boolean)：文章是否隐藏",[144,1306,1307],{},"comments(boolean)：是否开启评论",[144,1309,1310],{},"draft(boolean)：是否为草稿，如果开启为 True 的话发布情况下是看不到这篇文章的。",[144,1312,1313,1314,1316,1317],{},"tags(",[382,1315],{},"string)：文章的标签，比如我的这篇文章是这样的：",[115,1318,1319],{},"tags: [\"杂记\"]",[144,1321,1322,1323,1325],{},"keywords(",[382,1324],{},"string)：文章的关键词，有助于SEO，说人话就是有助于搜索。",[144,1327,1328],{},"readingTime(boolean)：是否开启预计阅读时长。",[83,1330,1331],{},"一般情况下并不会使用所有属性，主要使用的有title、description、date、draft。",[78,1333,1334],{"id":1334},"结束语",[83,1336,1337],{},"这是我的第一篇文章，说实话，我从来没有做笔记的习惯，这篇文章我写了大概四个小时，虽然内容不是很多，但如果能帮助到正在阅读这篇文章的朋友我会很开心。需要帮助的朋友如果还遇到了其他的困难可以在下面发表评论，遇到问题我们一起解决，在编程和学习的这条路上你从来都不是自己一个人。\n最后感谢大家阅读我的文章。",[1339,1340,1341],"style",{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":39,"searchDepth":182,"depth":182,"links":1343},[1344,1345,1346,1347,1357,1360],{"id":337,"depth":185,"text":338},{"id":344,"depth":185,"text":345},{"id":481,"depth":185,"text":481},{"id":579,"depth":185,"text":579,"children":1348},[1349,1353,1354,1355,1356],{"id":588,"depth":182,"text":588,"children":1350},[1351,1352],{"id":624,"depth":716,"text":624},{"id":676,"depth":716,"text":676},{"id":738,"depth":182,"text":738},{"id":820,"depth":182,"text":820},{"id":934,"depth":182,"text":934},{"id":1069,"depth":182,"text":1069},{"id":1161,"depth":185,"text":1162,"children":1358},[1359],{"id":1195,"depth":182,"text":1195},{"id":1334,"depth":185,"text":1334},"技术","此文章将带你了解什么是 Hugo，如何安装 Hugo，如何利用 Hugo 创建网站，如何启用 Hugo，如何下载、配置自己喜欢的主题。",{},"\u002Fposts\u002F2026-04-19-hello",{"title":325,"description":1362},"posts\u002F2026-04-19-hello",[415],"hkGB7uvyqR29U8bBOeeyzsmwnD6xLpeUBRNud1aEhd8",1779357305879]