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