[{"data":1,"prerenderedAt":899},["ShallowReactive",2],{"content-query-WUTVn3Uwi1":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"url":11,"tags":12,"en-title":16,"body":17,"_type":893,"_id":894,"_source":895,"_file":896,"_stem":897,"_extension":898},"/blog/2026-06-06-waline-comment-system","blog",false,"","为自己的博客加一套轻量评论系统","摘要：不再依赖 GitHub 登录，也不用嵌入第三方 iframe——用 Waline + Neon PostgreSQL 自建一套支持昵称、邮箱、网址的评论系统，部署在 Vercel 上免费运行。","2026-06-06 16:00:00",null,[13,14,15],"博客","评论","Waline","Add a Lightweight Comment System to Your Blog",{"type":18,"children":19,"toc":880},"root",[20,27,32,36,43,48,68,73,79,92,97,149,154,164,169,174,181,195,201,213,278,283,289,294,323,328,617,622,680,685,690,695,819,824,828,841,859,864,869,874],{"type":21,"tag":22,"props":23,"children":24},"element","h1",{"id":8},[25],{"type":26,"value":8},"text",{"type":21,"tag":28,"props":29,"children":30},"p",{},[31],{"type":26,"value":9},{"type":21,"tag":33,"props":34,"children":35},"hr",{},[],{"type":21,"tag":37,"props":38,"children":40},"h2",{"id":39},"为什么换掉-giscus",[41],{"type":26,"value":42},"为什么换掉 Giscus",{"type":21,"tag":28,"props":44,"children":45},{},[46],{"type":26,"value":47},"之前博客用的 Giscus，基于 GitHub Discussions。虽然配置简单，但有几个痛点：",{"type":21,"tag":49,"props":50,"children":51},"ul",{},[52,58,63],{"type":21,"tag":53,"props":54,"children":55},"li",{},[56],{"type":26,"value":57},"访客必须登录 GitHub 才能评论，门槛太高",{"type":21,"tag":53,"props":59,"children":60},{},[61],{"type":26,"value":62},"评论和 Issues/讨论混在一起，不好管理",{"type":21,"tag":53,"props":64,"children":65},{},[66],{"type":26,"value":67},"想自定义样式和字段比较受限",{"type":21,"tag":28,"props":69,"children":70},{},[71],{"type":26,"value":72},"理想中的评论系统应该是：填个昵称和邮箱就能发言，像论坛一样自然。",{"type":21,"tag":37,"props":74,"children":76},{"id":75},"选型waline",[77],{"type":26,"value":78},"选型：Waline",{"type":21,"tag":28,"props":80,"children":81},{},[82,90],{"type":21,"tag":83,"props":84,"children":88},"a",{"href":85,"rel":86},"https://waline.js.org/",[87],"nofollow",[89],{"type":26,"value":15},{"type":26,"value":91}," 是一个轻量评论系统，后端可部署在 Vercel（免费），数据库支持 PostgreSQL、MySQL、MongoDB 等。前端是一个 JS 组件，嵌入到任何静态站点中。",{"type":21,"tag":28,"props":93,"children":94},{},[95],{"type":26,"value":96},"它的核心优势：",{"type":21,"tag":49,"props":98,"children":99},{},[100,111,119,129,139],{"type":21,"tag":53,"props":101,"children":102},{},[103,109],{"type":21,"tag":104,"props":105,"children":106},"strong",{},[107],{"type":26,"value":108},"开箱即用的表单",{"type":26,"value":110},"：昵称、邮箱、网址（就是你现在看到的这三栏）",{"type":21,"tag":53,"props":112,"children":113},{},[114],{"type":21,"tag":104,"props":115,"children":116},{},[117],{"type":26,"value":118},"无需第三方登录",{"type":21,"tag":53,"props":120,"children":121},{},[122,127],{"type":21,"tag":104,"props":123,"children":124},{},[125],{"type":26,"value":126},"反垃圾机制",{"type":26,"value":128},"：验证码 + 关键词过滤",{"type":21,"tag":53,"props":130,"children":131},{},[132,137],{"type":21,"tag":104,"props":133,"children":134},{},[135],{"type":26,"value":136},"管理后台",{"type":26,"value":138},"：审核、删除、置顶评论",{"type":21,"tag":53,"props":140,"children":141},{},[142,147],{"type":21,"tag":104,"props":143,"children":144},{},[145],{"type":26,"value":146},"全平台兼容",{"type":26,"value":148},"：Vue、React、静态 HTML 都能用",{"type":21,"tag":37,"props":150,"children":152},{"id":151},"架构",[153],{"type":26,"value":151},{"type":21,"tag":155,"props":156,"children":158},"pre",{"code":157},"┌──────────────────────┐       ┌───────────────────────┐\n│  博客 (GitHub Pages)  │       │  Waline (Vercel)      │\n│  静态 HTML + JS       │  ←→   │  评论 API              │\n│  @waline/client       │       │  Neon PostgreSQL        │\n└──────────────────────┘       └───────────────────────┘\n",[159],{"type":21,"tag":160,"props":161,"children":162},"code",{"__ignoreMap":7},[163],{"type":26,"value":157},{"type":21,"tag":28,"props":165,"children":166},{},[167],{"type":26,"value":168},"博客本身还是纯静态的，部署在 GitHub Pages 上。评论功能由 Waline 客户端在浏览器端发起到 Vercel 后端，不需要博客有服务器。",{"type":21,"tag":37,"props":170,"children":172},{"id":171},"部署步骤",[173],{"type":26,"value":171},{"type":21,"tag":175,"props":176,"children":178},"h3",{"id":177},"_1-在-vercel-部署-waline-后端",[179],{"type":26,"value":180},"1. 在 Vercel 部署 Waline 后端",{"type":21,"tag":28,"props":182,"children":183},{},[184,186,193],{"type":26,"value":185},"一键部署：",{"type":21,"tag":83,"props":187,"children":190},{"href":188,"rel":189},"https://vercel.com/import/walinejs/waline",[87],[191],{"type":26,"value":192},"Waline Vercel 部署",{"type":26,"value":194},"，然后绑定自己域名。",{"type":21,"tag":175,"props":196,"children":198},{"id":197},"_2-配置数据库",[199],{"type":26,"value":200},"2. 配置数据库",{"type":21,"tag":28,"props":202,"children":203},{},[204,206,211],{"type":26,"value":205},"Waline 支持多种数据库，我这里用了 ",{"type":21,"tag":104,"props":207,"children":208},{},[209],{"type":26,"value":210},"Neon PostgreSQL",{"type":26,"value":212},"（有免费 500MB 额度），在 Vercel 项目设置里添加环境变量：",{"type":21,"tag":155,"props":214,"children":218},{"code":215,"language":216,"meta":7,"className":217,"style":7},"PG_HOST=ep-xxx.aws.neon.tech\nPG_PORT=5432\nPG_DB=neondb\nPG_USER=xxx\nPG_PASSWORD=xxx\nPG_SSL=true\n","env","language-env shiki shiki-themes vitesse-light vitesse-dark monokai",[219],{"type":21,"tag":160,"props":220,"children":221},{"__ignoreMap":7},[222,233,242,251,260,269],{"type":21,"tag":223,"props":224,"children":227},"span",{"class":225,"line":226},"line",1,[228],{"type":21,"tag":223,"props":229,"children":230},{},[231],{"type":26,"value":232},"PG_HOST=ep-xxx.aws.neon.tech\n",{"type":21,"tag":223,"props":234,"children":236},{"class":225,"line":235},2,[237],{"type":21,"tag":223,"props":238,"children":239},{},[240],{"type":26,"value":241},"PG_PORT=5432\n",{"type":21,"tag":223,"props":243,"children":245},{"class":225,"line":244},3,[246],{"type":21,"tag":223,"props":247,"children":248},{},[249],{"type":26,"value":250},"PG_DB=neondb\n",{"type":21,"tag":223,"props":252,"children":254},{"class":225,"line":253},4,[255],{"type":21,"tag":223,"props":256,"children":257},{},[258],{"type":26,"value":259},"PG_USER=xxx\n",{"type":21,"tag":223,"props":261,"children":263},{"class":225,"line":262},5,[264],{"type":21,"tag":223,"props":265,"children":266},{},[267],{"type":26,"value":268},"PG_PASSWORD=xxx\n",{"type":21,"tag":223,"props":270,"children":272},{"class":225,"line":271},6,[273],{"type":21,"tag":223,"props":274,"children":275},{},[276],{"type":26,"value":277},"PG_SSL=true\n",{"type":21,"tag":28,"props":279,"children":280},{},[281],{"type":26,"value":282},"也可以用 MongoDB Atlas、TiDB Cloud 等，都是一样的配置流程。",{"type":21,"tag":175,"props":284,"children":286},{"id":285},"_3-前端接入",[287],{"type":26,"value":288},"3. 前端接入",{"type":21,"tag":28,"props":290,"children":291},{},[292],{"type":26,"value":293},"在 Nuxt 项目中安装客户端：",{"type":21,"tag":155,"props":295,"children":299},{"code":296,"language":297,"meta":7,"className":298,"style":7},"pnpm add @waline/client\n","bash","language-bash shiki shiki-themes vitesse-light vitesse-dark monokai",[300],{"type":21,"tag":160,"props":301,"children":302},{"__ignoreMap":7},[303],{"type":21,"tag":223,"props":304,"children":305},{"class":225,"line":226},[306,312,318],{"type":21,"tag":223,"props":307,"children":309},{"style":308},"--shiki-default:#59873A;--shiki-dark:#80A665;--shiki-sepia:#A6E22E",[310],{"type":26,"value":311},"pnpm",{"type":21,"tag":223,"props":313,"children":315},{"style":314},"--shiki-default:#B56959;--shiki-dark:#C98A7D;--shiki-sepia:#E6DB74",[316],{"type":26,"value":317}," add",{"type":21,"tag":223,"props":319,"children":320},{"style":314},[321],{"type":26,"value":322}," @waline/client\n",{"type":21,"tag":28,"props":324,"children":325},{},[326],{"type":26,"value":327},"然后在文章页面加一段客户端初始化代码：",{"type":21,"tag":155,"props":329,"children":333},{"code":330,"language":331,"meta":7,"className":332,"style":7},"onMounted(async () => {\n  const { init } = await import('@waline/client')\n  await import('@waline/client/style')\n  init({\n    el: '#waline',\n    serverURL: 'https://comments.hutiger.men',\n    lang: 'zh-CN',\n    emoji: true,\n  })\n})\n","ts","language-ts shiki shiki-themes vitesse-light vitesse-dark monokai",[334],{"type":21,"tag":160,"props":335,"children":336},{"__ignoreMap":7},[337,373,439,472,485,517,546,576,599,608],{"type":21,"tag":223,"props":338,"children":339},{"class":225,"line":226},[340,345,351,357,362,368],{"type":21,"tag":223,"props":341,"children":342},{"style":308},[343],{"type":26,"value":344},"onMounted",{"type":21,"tag":223,"props":346,"children":348},{"style":347},"--shiki-default:#999999;--shiki-dark:#666666;--shiki-sepia:#F8F8F2",[349],{"type":26,"value":350},"(",{"type":21,"tag":223,"props":352,"children":354},{"style":353},"--shiki-default:#AB5959;--shiki-dark:#CB7676;--shiki-sepia:#F92672",[355],{"type":26,"value":356},"async",{"type":21,"tag":223,"props":358,"children":359},{"style":347},[360],{"type":26,"value":361}," ()",{"type":21,"tag":223,"props":363,"children":365},{"style":364},"--shiki-default:#999999;--shiki-default-font-style:inherit;--shiki-dark:#666666;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic",[366],{"type":26,"value":367}," =>",{"type":21,"tag":223,"props":369,"children":370},{"style":347},[371],{"type":26,"value":372}," {\n",{"type":21,"tag":223,"props":374,"children":375},{"class":225,"line":235},[376,382,387,393,398,404,410,415,419,425,430,434],{"type":21,"tag":223,"props":377,"children":379},{"style":378},"--shiki-default:#AB5959;--shiki-default-font-style:inherit;--shiki-dark:#CB7676;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic",[380],{"type":26,"value":381},"  const",{"type":21,"tag":223,"props":383,"children":384},{"style":347},[385],{"type":26,"value":386}," {",{"type":21,"tag":223,"props":388,"children":390},{"style":389},"--shiki-default:#B07D48;--shiki-dark:#BD976A;--shiki-sepia:#F8F8F2",[391],{"type":26,"value":392}," init",{"type":21,"tag":223,"props":394,"children":395},{"style":347},[396],{"type":26,"value":397}," }",{"type":21,"tag":223,"props":399,"children":401},{"style":400},"--shiki-default:#999999;--shiki-dark:#666666;--shiki-sepia:#F92672",[402],{"type":26,"value":403}," =",{"type":21,"tag":223,"props":405,"children":407},{"style":406},"--shiki-default:#1E754F;--shiki-dark:#4D9375;--shiki-sepia:#F92672",[408],{"type":26,"value":409}," await",{"type":21,"tag":223,"props":411,"children":412},{"style":353},[413],{"type":26,"value":414}," import",{"type":21,"tag":223,"props":416,"children":417},{"style":347},[418],{"type":26,"value":350},{"type":21,"tag":223,"props":420,"children":422},{"style":421},"--shiki-default:#B5695977;--shiki-dark:#C98A7D77;--shiki-sepia:#E6DB74",[423],{"type":26,"value":424},"'",{"type":21,"tag":223,"props":426,"children":427},{"style":314},[428],{"type":26,"value":429},"@waline/client",{"type":21,"tag":223,"props":431,"children":432},{"style":421},[433],{"type":26,"value":424},{"type":21,"tag":223,"props":435,"children":436},{"style":347},[437],{"type":26,"value":438},")\n",{"type":21,"tag":223,"props":440,"children":441},{"class":225,"line":244},[442,447,451,455,459,464,468],{"type":21,"tag":223,"props":443,"children":444},{"style":406},[445],{"type":26,"value":446},"  await",{"type":21,"tag":223,"props":448,"children":449},{"style":353},[450],{"type":26,"value":414},{"type":21,"tag":223,"props":452,"children":453},{"style":347},[454],{"type":26,"value":350},{"type":21,"tag":223,"props":456,"children":457},{"style":421},[458],{"type":26,"value":424},{"type":21,"tag":223,"props":460,"children":461},{"style":314},[462],{"type":26,"value":463},"@waline/client/style",{"type":21,"tag":223,"props":465,"children":466},{"style":421},[467],{"type":26,"value":424},{"type":21,"tag":223,"props":469,"children":470},{"style":347},[471],{"type":26,"value":438},{"type":21,"tag":223,"props":473,"children":474},{"class":225,"line":253},[475,480],{"type":21,"tag":223,"props":476,"children":477},{"style":308},[478],{"type":26,"value":479},"  init",{"type":21,"tag":223,"props":481,"children":482},{"style":347},[483],{"type":26,"value":484},"({\n",{"type":21,"tag":223,"props":486,"children":487},{"class":225,"line":262},[488,494,499,503,508,512],{"type":21,"tag":223,"props":489,"children":491},{"style":490},"--shiki-default:#998418;--shiki-dark:#B8A965;--shiki-sepia:#F8F8F2",[492],{"type":26,"value":493},"    el",{"type":21,"tag":223,"props":495,"children":496},{"style":347},[497],{"type":26,"value":498},": ",{"type":21,"tag":223,"props":500,"children":501},{"style":421},[502],{"type":26,"value":424},{"type":21,"tag":223,"props":504,"children":505},{"style":314},[506],{"type":26,"value":507},"#waline",{"type":21,"tag":223,"props":509,"children":510},{"style":421},[511],{"type":26,"value":424},{"type":21,"tag":223,"props":513,"children":514},{"style":347},[515],{"type":26,"value":516},",\n",{"type":21,"tag":223,"props":518,"children":519},{"class":225,"line":271},[520,525,529,533,538,542],{"type":21,"tag":223,"props":521,"children":522},{"style":490},[523],{"type":26,"value":524},"    serverURL",{"type":21,"tag":223,"props":526,"children":527},{"style":347},[528],{"type":26,"value":498},{"type":21,"tag":223,"props":530,"children":531},{"style":421},[532],{"type":26,"value":424},{"type":21,"tag":223,"props":534,"children":535},{"style":314},[536],{"type":26,"value":537},"https://comments.hutiger.men",{"type":21,"tag":223,"props":539,"children":540},{"style":421},[541],{"type":26,"value":424},{"type":21,"tag":223,"props":543,"children":544},{"style":347},[545],{"type":26,"value":516},{"type":21,"tag":223,"props":547,"children":549},{"class":225,"line":548},7,[550,555,559,563,568,572],{"type":21,"tag":223,"props":551,"children":552},{"style":490},[553],{"type":26,"value":554},"    lang",{"type":21,"tag":223,"props":556,"children":557},{"style":347},[558],{"type":26,"value":498},{"type":21,"tag":223,"props":560,"children":561},{"style":421},[562],{"type":26,"value":424},{"type":21,"tag":223,"props":564,"children":565},{"style":314},[566],{"type":26,"value":567},"zh-CN",{"type":21,"tag":223,"props":569,"children":570},{"style":421},[571],{"type":26,"value":424},{"type":21,"tag":223,"props":573,"children":574},{"style":347},[575],{"type":26,"value":516},{"type":21,"tag":223,"props":577,"children":579},{"class":225,"line":578},8,[580,585,589,595],{"type":21,"tag":223,"props":581,"children":582},{"style":490},[583],{"type":26,"value":584},"    emoji",{"type":21,"tag":223,"props":586,"children":587},{"style":347},[588],{"type":26,"value":498},{"type":21,"tag":223,"props":590,"children":592},{"style":591},"--shiki-default:#1E754F;--shiki-dark:#4D9375;--shiki-sepia:#AE81FF",[593],{"type":26,"value":594},"true",{"type":21,"tag":223,"props":596,"children":597},{"style":347},[598],{"type":26,"value":516},{"type":21,"tag":223,"props":600,"children":602},{"class":225,"line":601},9,[603],{"type":21,"tag":223,"props":604,"children":605},{"style":347},[606],{"type":26,"value":607},"  })\n",{"type":21,"tag":223,"props":609,"children":611},{"class":225,"line":610},10,[612],{"type":21,"tag":223,"props":613,"children":614},{"style":347},[615],{"type":26,"value":616},"})\n",{"type":21,"tag":28,"props":618,"children":619},{},[620],{"type":26,"value":621},"模板里加一个容器就行：",{"type":21,"tag":155,"props":623,"children":627},{"code":624,"language":625,"meta":7,"className":626,"style":7},"\u003Cdiv id=\"waline\" />\n","html","language-html shiki shiki-themes vitesse-light vitesse-dark monokai",[628],{"type":21,"tag":160,"props":629,"children":630},{"__ignoreMap":7},[631],{"type":21,"tag":223,"props":632,"children":633},{"class":225,"line":226},[634,639,644,650,655,660,665,669,675],{"type":21,"tag":223,"props":635,"children":636},{"style":347},[637],{"type":26,"value":638},"\u003C",{"type":21,"tag":223,"props":640,"children":641},{"style":406},[642],{"type":26,"value":643},"div",{"type":21,"tag":223,"props":645,"children":647},{"style":646},"--shiki-default:#B07D48;--shiki-dark:#BD976A;--shiki-sepia:#A6E22E",[648],{"type":26,"value":649}," id",{"type":21,"tag":223,"props":651,"children":652},{"style":347},[653],{"type":26,"value":654},"=",{"type":21,"tag":223,"props":656,"children":657},{"style":421},[658],{"type":26,"value":659},"\"",{"type":21,"tag":223,"props":661,"children":662},{"style":314},[663],{"type":26,"value":664},"waline",{"type":21,"tag":223,"props":666,"children":667},{"style":421},[668],{"type":26,"value":659},{"type":21,"tag":223,"props":670,"children":672},{"style":671},"--shiki-default:#999999;--shiki-default-font-style:italic;--shiki-dark:#666666;--shiki-dark-font-style:italic;--shiki-sepia:#F44747;--shiki-sepia-font-style:inherit",[673],{"type":26,"value":674}," /",{"type":21,"tag":223,"props":676,"children":677},{"style":347},[678],{"type":26,"value":679},">\n",{"type":21,"tag":28,"props":681,"children":682},{},[683],{"type":26,"value":684},"整个替换过程就改一个文件，Waline 会自动渲染出完整的评论表单和列表。",{"type":21,"tag":37,"props":686,"children":688},{"id":687},"自定义样式",[689],{"type":26,"value":687},{"type":21,"tag":28,"props":691,"children":692},{},[693],{"type":26,"value":694},"Waline 的默认样式已经很干净了，但如果想让它和博客主题更融合，可以用 CSS 变量覆盖：",{"type":21,"tag":155,"props":696,"children":700},{"code":697,"language":698,"meta":7,"className":699,"style":7},"#waline {\n  --waline-font-size: 0.95rem;\n  --waline-theme-color: var(--accent);\n  --waline-active-color: var(--accent-soft);\n}\n","css","language-css shiki shiki-themes vitesse-light vitesse-dark monokai",[701],{"type":21,"tag":160,"props":702,"children":703},{"__ignoreMap":7},[704,721,750,782,811],{"type":21,"tag":223,"props":705,"children":706},{"class":225,"line":226},[707,713,717],{"type":21,"tag":223,"props":708,"children":710},{"style":709},"--shiki-default:#999999;--shiki-dark:#666666;--shiki-sepia:#A6E22E",[711],{"type":26,"value":712},"#",{"type":21,"tag":223,"props":714,"children":715},{"style":646},[716],{"type":26,"value":664},{"type":21,"tag":223,"props":718,"children":719},{"style":347},[720],{"type":26,"value":372},{"type":21,"tag":223,"props":722,"children":723},{"class":225,"line":235},[724,729,734,740,745],{"type":21,"tag":223,"props":725,"children":726},{"style":389},[727],{"type":26,"value":728},"  --waline-font-size",{"type":21,"tag":223,"props":730,"children":731},{"style":347},[732],{"type":26,"value":733},":",{"type":21,"tag":223,"props":735,"children":737},{"style":736},"--shiki-default:#2F798A;--shiki-dark:#4C9A91;--shiki-sepia:#AE81FF",[738],{"type":26,"value":739}," 0.95",{"type":21,"tag":223,"props":741,"children":742},{"style":353},[743],{"type":26,"value":744},"rem",{"type":21,"tag":223,"props":746,"children":747},{"style":347},[748],{"type":26,"value":749},";\n",{"type":21,"tag":223,"props":751,"children":752},{"class":225,"line":244},[753,758,762,768,772,777],{"type":21,"tag":223,"props":754,"children":755},{"style":389},[756],{"type":26,"value":757},"  --waline-theme-color",{"type":21,"tag":223,"props":759,"children":760},{"style":347},[761],{"type":26,"value":733},{"type":21,"tag":223,"props":763,"children":765},{"style":764},"--shiki-default:#998418;--shiki-dark:#B8A965;--shiki-sepia:#66D9EF",[766],{"type":26,"value":767}," var",{"type":21,"tag":223,"props":769,"children":770},{"style":347},[771],{"type":26,"value":350},{"type":21,"tag":223,"props":773,"children":774},{"style":389},[775],{"type":26,"value":776},"--accent",{"type":21,"tag":223,"props":778,"children":779},{"style":347},[780],{"type":26,"value":781},");\n",{"type":21,"tag":223,"props":783,"children":784},{"class":225,"line":253},[785,790,794,798,802,807],{"type":21,"tag":223,"props":786,"children":787},{"style":389},[788],{"type":26,"value":789},"  --waline-active-color",{"type":21,"tag":223,"props":791,"children":792},{"style":347},[793],{"type":26,"value":733},{"type":21,"tag":223,"props":795,"children":796},{"style":764},[797],{"type":26,"value":767},{"type":21,"tag":223,"props":799,"children":800},{"style":347},[801],{"type":26,"value":350},{"type":21,"tag":223,"props":803,"children":804},{"style":389},[805],{"type":26,"value":806},"--accent-soft",{"type":21,"tag":223,"props":808,"children":809},{"style":347},[810],{"type":26,"value":781},{"type":21,"tag":223,"props":812,"children":813},{"class":225,"line":262},[814],{"type":21,"tag":223,"props":815,"children":816},{"style":347},[817],{"type":26,"value":818},"}\n",{"type":21,"tag":28,"props":820,"children":821},{},[822],{"type":26,"value":823},"我给评论区加了分隔线和卡片背景，看起来像是博客正文的自然延伸。",{"type":21,"tag":37,"props":825,"children":826},{"id":136},[827],{"type":26,"value":136},{"type":21,"tag":28,"props":829,"children":830},{},[831,833,839],{"type":26,"value":832},"部署完成后，访问 ",{"type":21,"tag":160,"props":834,"children":836},{"className":835},[],[837],{"type":26,"value":838},"你的域名/ui",{"type":26,"value":840}," 就是管理后台。可以：",{"type":21,"tag":49,"props":842,"children":843},{},[844,849,854],{"type":21,"tag":53,"props":845,"children":846},{},[847],{"type":26,"value":848},"查看、删除、置顶所有评论",{"type":21,"tag":53,"props":850,"children":851},{},[852],{"type":26,"value":853},"配置反垃圾规则",{"type":21,"tag":53,"props":855,"children":856},{},[857],{"type":26,"value":858},"邮件通知",{"type":21,"tag":37,"props":860,"children":862},{"id":861},"小结",[863],{"type":26,"value":861},{"type":21,"tag":28,"props":865,"children":866},{},[867],{"type":26,"value":868},"从 Giscus 换到 Waline，最直观的感受是评论区的氛围更轻松了——访客不用跳转 GitHub 授权，直接填昵称就能开口。对于个人博客来说，降低评论门槛比强绑定一个平台账号更重要。",{"type":21,"tag":28,"props":870,"children":871},{},[872],{"type":26,"value":873},"如果你也在用静态博客，且觉得现有评论方案不太顺手，值得试试这套组合。",{"type":21,"tag":875,"props":876,"children":877},"style",{},[878],{"type":26,"value":879},"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 .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":7,"searchDepth":235,"depth":235,"links":881},[882,883,884,885,890,891,892],{"id":39,"depth":235,"text":42},{"id":75,"depth":235,"text":78},{"id":151,"depth":235,"text":151},{"id":171,"depth":235,"text":171,"children":886},[887,888,889],{"id":177,"depth":244,"text":180},{"id":197,"depth":244,"text":200},{"id":285,"depth":244,"text":288},{"id":687,"depth":235,"text":687},{"id":136,"depth":235,"text":136},{"id":861,"depth":235,"text":861},"markdown","content:blog:2026-06-06-waline-comment-system.md","content","blog/2026-06-06-waline-comment-system.md","blog/2026-06-06-waline-comment-system","md",1780733631875]